File: //usr/local/lib/python3.7/site-packages/pip/_internal/distributions/__pycache__/base.cpython-37.pyc
B
L��g� � @ sP d dl Z d dlmZ d dlmZ d dlmZ d dlmZ G dd� de j d�Z
dS ) � N)�Optional)�
PackageFinder)�BaseDistribution)�InstallRequirementc sn e Zd ZdZedd�� fdd�Zejee d�dd��Z
ejed�d d
��Z
ejeeedd�dd
��Z� ZS )�AbstractDistributiona� 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.
- if we need to do work in the build tracker, we must be able to generate a unique
string to identify the requirement in the build tracker.
N)�req�returnc s t � �� || _d S )N)�super�__init__r )�selfr )� __class__� �D/tmp/pip-unpacked-wheel-hv55ucu3/pip/_internal/distributions/base.pyr
s
zAbstractDistribution.__init__)r c C s
t � �dS )z�A string that uniquely identifies this requirement to the build tracker.
If None, then this dist has no work to do in the build tracker, and
``.prepare_distribution_metadata()`` will not be called.N)�NotImplementedError)r r
r
r �build_tracker_id s z%AbstractDistribution.build_tracker_idc C s
t � �d S )N)r )r r
r
r �get_metadata_distribution( s z.AbstractDistribution.get_metadata_distribution)�finder�build_isolation�check_build_depsr c C s
t � �d S )N)r )r r r r r
r
r �prepare_distribution_metadata, s z2AbstractDistribution.prepare_distribution_metadata)�__name__�
__module__�__qualname__�__doc__r r
�abc�abstractpropertyr �strr �abstractmethodr r r �boolr �
__classcell__r
r
)r r r s r )� metaclass)r �typingr �"pip._internal.index.package_finderr Zpip._internal.metadata.baser Zpip._internal.reqr �ABCMetar r
r
r
r �<module> s