From 4491f38047e397d8ed9b8e27839c69cad0c35d6e Mon Sep 17 00:00:00 2001 From: Tzu-ping Chung Date: Fri, 27 Mar 2020 22:42:26 +0800 Subject: [PATCH] Return Requirement directly from get_dependencies This is possible now we have the factory construct. --- src/pip/_internal/resolution/resolvelib/base.py | 2 +- src/pip/_internal/resolution/resolvelib/candidates.py | 11 +++++++---- src/pip/_internal/resolution/resolvelib/provider.py | 5 +---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/pip/_internal/resolution/resolvelib/base.py b/src/pip/_internal/resolution/resolvelib/base.py index de3299496..5f99618ce 100644 --- a/src/pip/_internal/resolution/resolvelib/base.py +++ b/src/pip/_internal/resolution/resolvelib/base.py @@ -44,7 +44,7 @@ class Candidate(object): raise NotImplementedError("Override in subclass") def get_dependencies(self): - # type: () -> Sequence[InstallRequirement] + # type: () -> Sequence[Requirement] raise NotImplementedError("Override in subclass") def get_install_requirement(self): diff --git a/src/pip/_internal/resolution/resolvelib/candidates.py b/src/pip/_internal/resolution/resolvelib/candidates.py index a0069864a..e3cee8d45 100644 --- a/src/pip/_internal/resolution/resolvelib/candidates.py +++ b/src/pip/_internal/resolution/resolvelib/candidates.py @@ -16,6 +16,7 @@ if MYPY_CHECK_RUNNING: from pip._vendor.packaging.version import _BaseVersion from pip._vendor.pkg_resources import Distribution + from .base import Requirement from .factory import Factory @@ -95,9 +96,11 @@ class LinkCandidate(Candidate): return self._dist def get_dependencies(self): - # type: () -> Sequence[InstallRequirement] + # type: () -> Sequence[Requirement] return [ - self._factory.make_install_req(str(r), self._ireq) + self._factory.make_requirement( + self._factory.make_install_req(str(r), self._ireq), + ) for r in self.dist.requires() ] @@ -148,7 +151,7 @@ class ExtrasCandidate(LinkCandidate): return self.base.version def get_dependencies(self): - # type: () -> Sequence[InstallRequirement] + # type: () -> Sequence[Requirement] factory = self.base._factory # The user may have specified extras that the candidate doesn't @@ -170,7 +173,7 @@ class ExtrasCandidate(LinkCandidate): # (See note 2b in the class docstring) spec = "{}=={}".format(self.base.name, self.base.version) deps.append(factory.make_install_req(spec, self.base._ireq)) - return deps + return [factory.make_requirement(r) for r in deps] def get_install_requirement(self): # type: () -> Optional[InstallRequirement] diff --git a/src/pip/_internal/resolution/resolvelib/provider.py b/src/pip/_internal/resolution/resolvelib/provider.py index f0860fe04..5c3d210a3 100644 --- a/src/pip/_internal/resolution/resolvelib/provider.py +++ b/src/pip/_internal/resolution/resolvelib/provider.py @@ -51,7 +51,4 @@ class PipProvider(AbstractProvider): # type: (Candidate) -> Sequence[Requirement] if self._ignore_dependencies: return [] - return [ - self._factory.make_requirement(r) - for r in candidate.get_dependencies() - ] + return candidate.get_dependencies()