
    5>qjs                    |    d dl mZ d dlZd dlmZ d dlmZ d dlmZ erd dl	m
Z
mZ  G d dej                  	      Zy)
    )annotationsN)TYPE_CHECKING)BaseDistribution)InstallRequirement)BuildEnvironmentInstallerBuildIsolationModec                       e Zd ZdZd fdZeej                  dd              Zej                  dd       Z	ej                  	 	 	 	 	 	 	 	 	 	 d	d       Z
 xZ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.

     - 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.
    c                0    t         |           || _        y N)super__init__req)selfr   	__class__s     _/opt/rentech/trading_bot/.venv/lib/python3.12/site-packages/pip/_internal/distributions/base.pyr   zAbstractDistribution.__init__    s        c                    t               )zA 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   c                    t               r   r   )r   build_env_installerbuild_isolationcheck_build_depsallow_editabless        r   prepare_distribution_metadataz2AbstractDistribution.prepare_distribution_metadata1   s     "##r   )r   r   returnNone)r!   z
str | None)r!   r   )
r   r   r   r   r   boolr   r#   r!   r"   )__name__
__module____qualname____doc__r   propertyabcabstractmethodr   r   r    __classcell__)r   s   @r   r
   r
      s    $ $  $ 	$ $ 	$6$ ,$ 	$
 $ 
$ $r   r
   )	metaclass)
__future__r   r)   typingr   pip._internal.metadata.baser   pip._internal.reqr   pip._internal.build_envr   r   ABCMetar
    r   r   <module>r4      s*    " 
   8 0U,$S[[ ,$r   