Implement ignore_dependencies in new resolver

If this flag is set, simply report every candidate has no dependencies.
This commit is contained in:
Tzu-ping Chung 2020-03-24 02:02:36 +08:00
parent 5af542ccac
commit 3cb7a08f0d
3 changed files with 7 additions and 0 deletions

View File

@ -20,11 +20,13 @@ class PipProvider(AbstractProvider):
self,
finder, # type: PackageFinder
preparer, # type: RequirementPreparer
ignore_dependencies, # type: bool
make_install_req # type: InstallRequirementProvider
):
# type: (...) -> None
self._finder = finder
self._preparer = preparer
self._ignore_dependencies = ignore_dependencies
self._make_install_req = make_install_req
def make_requirement(self, ireq):
@ -72,6 +74,8 @@ class PipProvider(AbstractProvider):
def get_dependencies(self, candidate):
# type: (Candidate) -> Sequence[Requirement]
if self._ignore_dependencies:
return []
return [
make_requirement(
r,

View File

@ -37,6 +37,7 @@ class Resolver(BaseResolver):
super(Resolver, self).__init__()
self.finder = finder
self.preparer = preparer
self.ignore_dependencies = ignore_dependencies
self.make_install_req = make_install_req
self._result = None # type: Optional[Result]
@ -45,6 +46,7 @@ class Resolver(BaseResolver):
provider = PipProvider(
finder=self.finder,
preparer=self.preparer,
ignore_dependencies=self.ignore_dependencies,
make_install_req=self.make_install_req,
)
reporter = BaseReporter()

View File

@ -58,5 +58,6 @@ def provider(finder, preparer):
yield PipProvider(
finder=finder,
preparer=preparer,
ignore_dependencies=False,
make_install_req=make_install_req,
)