lyrics-classifier
/
venv
/lib
/python3.8
/site-packages
/pip
/_internal
/resolution
/resolvelib
/base.py
from pip._vendor.packaging.utils import canonicalize_name | |
from pip._internal.utils.typing import MYPY_CHECK_RUNNING | |
if MYPY_CHECK_RUNNING: | |
from typing import FrozenSet, Iterable, Optional, Tuple | |
from pip._vendor.packaging.version import _BaseVersion | |
from pip._internal.models.link import Link | |
from pip._internal.req.req_install import InstallRequirement | |
CandidateLookup = Tuple[ | |
Optional["Candidate"], | |
Optional[InstallRequirement], | |
] | |
def format_name(project, extras): | |
# type: (str, FrozenSet[str]) -> str | |
if not extras: | |
return project | |
canonical_extras = sorted(canonicalize_name(e) for e in extras) | |
return "{}[{}]".format(project, ",".join(canonical_extras)) | |
class Requirement(object): | |
def name(self): | |
# type: () -> str | |
raise NotImplementedError("Subclass should override") | |
def is_satisfied_by(self, candidate): | |
# type: (Candidate) -> bool | |
return False | |
def get_candidate_lookup(self): | |
# type: () -> CandidateLookup | |
raise NotImplementedError("Subclass should override") | |
def format_for_error(self): | |
# type: () -> str | |
raise NotImplementedError("Subclass should override") | |
class Candidate(object): | |
def name(self): | |
# type: () -> str | |
raise NotImplementedError("Override in subclass") | |
def version(self): | |
# type: () -> _BaseVersion | |
raise NotImplementedError("Override in subclass") | |
def is_installed(self): | |
# type: () -> bool | |
raise NotImplementedError("Override in subclass") | |
def is_editable(self): | |
# type: () -> bool | |
raise NotImplementedError("Override in subclass") | |
def source_link(self): | |
# type: () -> Optional[Link] | |
raise NotImplementedError("Override in subclass") | |
def iter_dependencies(self, with_requires): | |
# type: (bool) -> Iterable[Optional[Requirement]] | |
raise NotImplementedError("Override in subclass") | |
def get_install_requirement(self): | |
# type: () -> Optional[InstallRequirement] | |
raise NotImplementedError("Override in subclass") | |
def format_for_error(self): | |
# type: () -> str | |
raise NotImplementedError("Subclass should override") | |