Skip to content

Commit

Permalink
Add support in parse_python_dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
romain-intel committed Oct 2, 2024
1 parent 8fa77b4 commit 4bd28f6
Showing 1 changed file with 41 additions and 4 deletions.
45 changes: 41 additions & 4 deletions conda_lock/src_parser/pyproject_toml.py
Original file line number Diff line number Diff line change
Expand Up @@ -541,6 +541,22 @@ def parse_python_requirement(
VersionedDependency(name='some-package', manager='conda', category='main',
extras=[], markers="sys_platform == 'darwin'", version='*', build=None,
conda_channel=None, hash=None)
>>> parse_python_requirement(
... "mypkg @ /path/to/some-package",
... manager="pip",
... mapping_url=DEFAULT_MAPPING_URL,
... ) # doctest: +NORMALIZE_WHITESPACE
PathDependency(name='mypkg', manager='pip', category='main',
extras=[], markers=None, path='/path/to/some-package', is_directory=False)
>>> parse_python_requirement(
... "mypkg @ file:///path/to/some-package",
... manager="pip",
... mapping_url=DEFAULT_MAPPING_URL,
... ) # doctest: +NORMALIZE_WHITESPACE
PathDependency(name='mypkg', manager='pip', category='main',
extras=[], markers=None, path='/path/to/some-package', is_directory=False)
"""
if ";" in requirement:
requirement, markers = (s.strip() for s in requirement.rsplit(";", 1))
Expand Down Expand Up @@ -573,14 +589,35 @@ def parse_python_requirement(
)
elif parsed_req.url:
assert conda_version in {"", "*", None}
url, frag = urldefrag(parsed_req.url)
return URLDependency(
if (
parsed_req.url.startswith("git+")
or parsed_req.url.startswith("https://")
or parsed_req.url.startswith("ssh://")
):
url, frag = urldefrag(parsed_req.url)
return URLDependency(
name=conda_dep_name,
manager=manager,
category=category,
extras=extras,
url=url,
hashes=[frag.replace("=", ":")],
markers=markers,
)
# Local file/directory URL
url = parsed_req.url
if url.startswith("file://"):
url = url[7:]
path = pathlib.Path(url)
path.resolve()
is_dir = path.is_dir()
return PathDependency(
name=conda_dep_name,
manager=manager,
category=category,
extras=extras,
url=url,
hashes=[frag.replace("=", ":")],
path=path.as_posix(),
is_directory=is_dir,
markers=markers,
)
else:
Expand Down

0 comments on commit 4bd28f6

Please sign in to comment.