Development-Project-Synergy-Finder
/
env
/Lib
/site-packages
/pip
/_internal
/distributions
/base.py
| import abc | |
| from pip._internal.index.package_finder import PackageFinder | |
| from pip._internal.metadata.base import BaseDistribution | |
| from pip._internal.req import InstallRequirement | |
| class AbstractDistribution(metaclass=abc.ABCMeta): | |
| """A base class for handling installable artifacts. | |
| The requirements for anything installable are as follows: | |
| - we must be able to determine the requirement name | |
| (or we can't correctly handle the non-upgrade case). | |
| - for packages with setup requirements, we must also be able | |
| to determine their requirements without installing additional | |
| packages (for the same reason as run-time dependencies) | |
| - we must be able to create a Distribution object exposing the | |
| above metadata. | |
| """ | |
| def __init__(self, req: InstallRequirement) -> None: | |
| super().__init__() | |
| self.req = req | |
| def get_metadata_distribution(self) -> BaseDistribution: | |
| raise NotImplementedError() | |
| def prepare_distribution_metadata( | |
| self, | |
| finder: PackageFinder, | |
| build_isolation: bool, | |
| check_build_deps: bool, | |
| ) -> None: | |
| raise NotImplementedError() | |