123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- from pip._vendor.resolvelib.providers import AbstractProvider
- from pip._internal.utils.typing import MYPY_CHECK_RUNNING
- if MYPY_CHECK_RUNNING:
- from typing import Any, Optional, Sequence, Tuple, Union
- from pip._internal.req.req_install import InstallRequirement
- from .base import Requirement, Candidate
- from .factory import Factory
- class PipProvider(AbstractProvider):
- def __init__(
- self,
- factory, # type: Factory
- ignore_dependencies, # type: bool
- ):
- # type: (...) -> None
- self._factory = factory
- self._ignore_dependencies = ignore_dependencies
- def get_install_requirement(self, c):
- # type: (Candidate) -> Optional[InstallRequirement]
- return c.get_install_requirement()
- def identify(self, dependency):
- # type: (Union[Requirement, Candidate]) -> str
- return dependency.name
- def get_preference(
- self,
- resolution, # type: Optional[Candidate]
- candidates, # type: Sequence[Candidate]
- information # type: Sequence[Tuple[Requirement, Candidate]]
- ):
- # type: (...) -> Any
- # Use the "usual" value for now
- return len(candidates)
- def find_matches(self, requirement):
- # type: (Requirement) -> Sequence[Candidate]
- return requirement.find_matches()
- def is_satisfied_by(self, requirement, candidate):
- # type: (Requirement, Candidate) -> bool
- return requirement.is_satisfied_by(candidate)
- def get_dependencies(self, candidate):
- # type: (Candidate) -> Sequence[Requirement]
- if self._ignore_dependencies:
- return []
- return candidate.get_dependencies()
|