
    dh&                    x    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
  G d dej                  	      Zy)
    )annotationsN)TYPE_CHECKING)BaseDistribution)InstallRequirement)BuildEnvironmentInstallerc                       e Zd ZdZd fdZ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     b/var/www/html/vivango/api/ia/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_depss       r   prepare_distribution_metadataz2AbstractDistribution.prepare_distribution_metadata0   s     "##r   )r   r   returnNone)r   z
str | None)r   r   )r   r   r   boolr   r!   r   r    )__name__
__module____qualname____doc__r   abcabstractpropertyr   abstractmethodr   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   ABCMetar	    r   r   <module>r2      s*    " 
   8 0A*$S[[ *$r   