File: //lib/python3/dist-packages/pip/_internal/distributions/__pycache__/base.cpython-312.pyc
�
��h� � �h � d dl Z d dlmZ d dlmZ d dlmZ d dlmZ G d� de j �� Z
y) � N)�Optional)�
PackageFinder)�BaseDistribution)�InstallRequirementc � � � e Zd ZdZdeddf� fd�Zej dee fd�� Z
ej defd�� Z
ej ded ed
eddfd�� Z� xZS )�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.
�req�returnNc �0 �� t �| � � || _ y �N)�super�__init__r )�selfr � __class__s ��B/usr/lib/python3/dist-packages/pip/_internal/distributions/base.pyr zAbstractDistribution.__init__ s �� �
������� c � � t � �)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.��NotImplementedError�r s r �build_tracker_idz%AbstractDistribution.build_tracker_id s
� � "�#�#r c � � t � �r r r s r �get_metadata_distributionz.AbstractDistribution.get_metadata_distribution( s � �!�#�#r �finder�build_isolation�check_build_depsc � � t � �r r )r r r r s r �prepare_distribution_metadataz2AbstractDistribution.prepare_distribution_metadata, s
� � "�#�#r )�__name__�
__module__�__qualname__�__doc__r r �abc�abstractpropertyr �strr �abstractmethodr r r �boolr �
__classcell__)r s @r r r s� �� ��$�.� �4� � ���$�(�3�-� $� �$� ���$�+;� $� �$� ���$��$� �$� � $�
�$� �$r r )� metaclass)r# �typingr �"pip._internal.index.package_finderr �pip._internal.metadata.baser �pip._internal.reqr �ABCMetar � r r �<module>r0 s$ ��
� � <� 8� 0�*$�S�[�[� *$r