�
��^i� � �Z � d dl Z d dlmZ d dlmZ d dlmZ G d� de j �� � ZdS )� N)�
PackageFinder)�BaseDistribution)�InstallRequirementc � � � e Zd ZdZdeddf� fd�Zej defd�� � Z ej de
deddfd �� � Z� xZ
S )
�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.
�req�returnNc �V �� t � � � � � || _ d S �N)�super�__init__r )�selfr � __class__s ���/builddir/build/BUILDROOT/alt-python311-pip-21.3.1-4.el8.x86_64/opt/alt/python311/lib/python3.11/site-packages/pip/_internal/distributions/base.pyr
zAbstractDistribution.__init__ s$ �� �
������������� c � � t � � �r ��NotImplementedError)r s r �get_metadata_distributionz.AbstractDistribution.get_metadata_distribution s � �!�#�#�#r �finder�build_isolationc � � t � � �r r )r r r s r �prepare_distribution_metadataz2AbstractDistribution.prepare_distribution_metadata s � � "�#�#�#r )�__name__�
__module__�__qualname__�__doc__r r
�abc�abstractmethodr r r �boolr �
__classcell__)r s @r r r s� �� � � � � �
�
��.� �4� � � � � � � ��$�+;� $� $� $� ��$� ��$�#�$�6:�$�
�$� $� $� ��$� $� $� $� $r r )� metaclass) r �"pip._internal.index.package_finderr �pip._internal.metadata.baser �pip._internal.reqr �ABCMetar � r r �