Skip to content

Commit 06a82f2

Browse files
committed
Get ireq from AlreadyInstalledCandidate
1 parent 01270cf commit 06a82f2

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

src/pip/_internal/resolution/resolvelib/provider.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@
1313

1414
from pip._vendor.resolvelib.providers import AbstractProvider
1515

16+
from pip._internal.req import InstallRequirement
17+
1618
from .base import Candidate, Constraint, Requirement
17-
from .candidates import REQUIRES_PYTHON_IDENTIFIER
19+
from .candidates import REQUIRES_PYTHON_IDENTIFIER, AlreadyInstalledCandidate
1820
from .factory import Factory
1921

2022
if TYPE_CHECKING:
@@ -233,10 +235,15 @@ def is_satisfied_by(self, requirement: Requirement, candidate: Candidate) -> boo
233235
return requirement.is_satisfied_by(candidate)
234236

235237
def get_dependencies(self, candidate: Candidate) -> Sequence[Requirement]:
236-
install_req = candidate.get_install_requirement()
238+
ireq = candidate.get_install_requirement()
237239
with_requires = not self._ignore_dependencies
238-
if install_req and with_requires:
239-
with_requires = not install_req.ignore_dependencies
240+
if ireq and with_requires:
241+
if ireq.comes_from and isinstance(ireq.comes_from, InstallRequirement):
242+
with_requires = not ireq.comes_from.ignore_dependencies
243+
else:
244+
with_requires = not ireq.ignore_dependencies
245+
elif isinstance(candidate, AlreadyInstalledCandidate):
246+
with_requires = not candidate._ireq.ignore_dependencies
240247
return [r for r in candidate.iter_dependencies(with_requires) if r is not None]
241248

242249
@staticmethod

0 commit comments

Comments
 (0)