§
    i¡·fÏ  ã                   óf   — d dl Z d dlmZ d dlmZ d dlmZ d dlmZ  G d„ de j	        ¬¦  «        Z
dS )	é    N)ÚOptional)ÚPackageFinder)ÚBaseDistribution)ÚInstallRequirementc            	       ó¶   ‡ — e Zd ZdZdeddfˆ fd„Zej        dee	         fd„¦   «         Z
ej        defd„¦   «         Zej        ded	ed
eddf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.
    ÚreqÚreturnNc                 óV   •— t          ¦   «                              ¦   «          || _        d S ©N)ÚsuperÚ__init__r	   )Úselfr	   Ú	__class__s     €úR/var/www/html/env/lib/python3.11/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   ÚfinderÚbuild_isolationÚcheck_build_depsc                 ó   — t          ¦   «         ‚r   r   )r   r   r   r   s       r   Úprepare_distribution_metadataz2AbstractDistribution.prepare_distribution_metadata,   s   € õ "Ñ#Ô#Ð#r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   ÚabcÚabstractpropertyr   Ústrr   Úabstractmethodr   r   r   Úboolr   Ú__classcell__)r   s   @r   r   r   	   sû   ø€ € € € € ðð ð$Ð.ð °4ð ð ð ð ð ð ð 	Ôð$ (¨3¤-ð $ð $ð $ñ Ôð$ð 	Ôð$Ð+;ð $ð $ð $ñ Ôð$ð 	Ôð$àð$ð ð$ð ð	$ð
 
ð$ð $ð $ñ Ôð$ð $ð $ð $ð $r   r   )Ú	metaclass)r#   Útypingr   Ú"pip._internal.index.package_finderr   Úpip._internal.metadata.baser   Úpip._internal.reqr   ÚABCMetar   © r   r   ú<module>r0      s‘   ðØ 
€
€
€
Ø Ð Ð Ð Ð Ð à <Ð <Ð <Ð <Ð <Ð <Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ð*$ð *$ð *$ð *$ð *$ S¤[ð *$ñ *$ô *$ð *$ð *$ð *$r   