File: D:/Python311/Lib/site-packages/pip/_internal/distributions/__pycache__/base.cpython-311.pyc
�
�mi& � �v � d dl mZ d dlZd dlmZ d dlmZ d dlmZ erd dl m
Z
G d� dej � � � ZdS )
� )�annotationsN)�
TYPE_CHECKING)�BaseDistribution)�InstallRequirement)�BuildEnvironmentInstallerc � � � e Zd ZdZd� fd�Zej dd�� � Zej dd
�� � Z ej dd�� � 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.
�reqr �return�Nonec �V �� t � � � � � || _ d S �N)�super�__init__r
)�selfr
� __class__s ��BD:\Python311\Lib\site-packages\pip/_internal/distributions/base.pyr zAbstractDistribution.__init__ s$ �� �
������������� �
str | Nonec � � 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 r c � � t � � �r r r s r �get_metadata_distributionz.AbstractDistribution.get_metadata_distribution, s � �!�#�#�#r �build_env_installerr �build_isolation�bool�check_build_depsc � � t � � �r r )r r r r s r �prepare_distribution_metadataz2AbstractDistribution.prepare_distribution_metadata0 s � � "�#�#�#r )r
r r r )r r )r r )r r r r r r r r )�__name__�
__module__�__qualname__�__doc__r �abc�abstractpropertyr �abstractmethodr r"