Skip to content

Commit

Permalink
Merge pull request #11112 from pradyunsg/filter-out-build-env-extras
Browse files Browse the repository at this point in the history
Filter out build requirements that require an extra to be used
  • Loading branch information
pradyunsg committed May 12, 2022
2 parents d0c89a1 + bf090d3 commit 0a982f6
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 2 deletions.
1 change: 1 addition & 0 deletions news/11112.bugfix.rst
@@ -0,0 +1 @@
Properly filter out optional dependencies (i.e. extras) when checking build environment distributions.
6 changes: 4 additions & 2 deletions src/pip/_internal/build_env.py
Expand Up @@ -175,8 +175,10 @@ def check_requirements(
)
for req_str in reqs:
req = Requirement(req_str)
if req.marker is not None and not req.marker.evaluate():
continue # FIXME: Consider extras?
# We're explicitly evaluating with an empty extra value, since build
# environments are not provided any mechanism to select specific extras.
if req.marker is not None and not req.marker.evaluate({"extra": ""}):
continue
dist = env.get_distribution(req.name)
if not dist:
missing.add(req_str)
Expand Down
1 change: 1 addition & 0 deletions tests/functional/test_build_env.py
Expand Up @@ -178,6 +178,7 @@ def test_build_env_requirements_check(script: PipTestEnvironment) -> None:
[
"bar==2.0; python_version < '3.0'",
"bar==3.0; python_version >= '3.0'",
"foo==4.0; extra == 'dev'",
],
)
assert r == (set(), set()), repr(r)
Expand Down

0 comments on commit 0a982f6

Please sign in to comment.