import abc from pip._vendor.six import add_metaclass from pip._internal.utils.typing import MYPY_CHECK_RUNNING if MYPY_CHECK_RUNNING: from typing import Optional from pip._vendor.pkg_resources import Distribution from pip._internal.req import InstallRequirement from pip._internal.index.package_finder import PackageFinder @add_metaclass(abc.ABCMeta) class AbstractDistribution(object): """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): # type: (InstallRequirement) -> None super(AbstractDistribution, self).__init__() self.req = req @abc.abstractmethod def get_pkg_resources_distribution(self): # type: () -> Optional[Distribution] raise NotImplementedError() @abc.abstractmethod def prepare_distribution_metadata(self, finder, build_isolation): # type: (PackageFinder, bool) -> None raise NotImplementedError()
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
.__init__.pyo.40009 | File | 1003 B | 0644 |
|
.base.pyo.40009 | File | 2.19 KB | 0644 |
|
.installed.pyo.40009 | File | 1.43 KB | 0644 |
|
__init__.py | File | 959 B | 0644 |
|
__init__.pyc | File | 1003 B | 0644 |
|
__init__.pyo | File | 1003 B | 0644 |
|
base.py | File | 1.39 KB | 0644 |
|
base.pyc | File | 2.19 KB | 0644 |
|
base.pyo | File | 2.19 KB | 0644 |
|
installed.py | File | 760 B | 0644 |
|
installed.pyc | File | 1.43 KB | 0644 |
|
installed.pyo | File | 1.43 KB | 0644 |
|
sdist.py | File | 3.99 KB | 0644 |
|
sdist.pyc | File | 4.06 KB | 0644 |
|
sdist.pyo | File | 3.99 KB | 0644 |
|
wheel.py | File | 1.26 KB | 0644 |
|
wheel.pyc | File | 1.81 KB | 0644 |
|
wheel.pyo | File | 1.75 KB | 0644 |
|