Ë
    ð�©js  ã                  ó|   — 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     €úg/var/www/html/streamforge-license/venv/lib/python3.12/site-packages/pip/_internal/distributions/base.pyr   zAbstractDistribution.__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   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   