Return Requirement directly from get_dependencies

This is possible now we have the factory construct.
This commit is contained in:
Tzu-ping Chung 2020-03-27 22:42:26 +08:00
parent e06048cb8b
commit 4491f38047
3 changed files with 9 additions and 9 deletions

View File

@ -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):

View File

@ -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]

View File

@ -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()