+
     h  c                   s~    ^ RI t ^ RIHtHt ^ RIHt ^ RIHt ]'       d   ^ RIH	t	  ! R R] P                  R7      tR# )	i    N)TYPE_CHECKINGOptionalBaseDistributionInstallRequirement)PackageFinderc                   s   a a ] tR t^t oRtV3R lV 3R llt]P                  V3R lR l4       t]P                  V3R lR l4       t
]P                  V3R lR	 l4       tR
tVtV ;t# )AbstractDistributionaz  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                s$   < V ^8  d   QhRS[ RR/# )   reqreturnNr   Zformat__classdict__   "E/usr/lib/python3.14/site-packages/pip/_internal/distributions/base.py__annotate__!AbstractDistribution.__annotate__   s      . 4     c                s0   < \         SV `  4        Wn        R # N)Zsuper__init__r	   )selfr	   	__class__s   &&r   r   ZAbstractDistribution.__init__   s    r   c                s0   < V ^8  d   QhRS[ S[,          /# r   r
   )r   Zstrr   r   r   r   r   #   s     $ $(3- $r   c                    \        4       h)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.ZNotImplementedErrorr      &r   build_tracker_idZ%AbstractDistribution.build_tracker_id"   s     "##r   c                s    < V ^8  d   QhRS[ /# r   r   r   r   r   r   r   +   s     $ $+; $r   c                r   r   r   r   r   r   get_metadata_distributionZ.AbstractDistribution.get_metadata_distribution*   s    !##r   c                s.   < V ^8  d   QhRRRS[ RS[ RR/# )r   finderr   build_isolationcheck_build_depsr
   N)Zboolr   r   r   r   r   /   s3     $ $$ $ 	$
 
$r   c                r   r   r   )r   r   r   r   s   &&&&r   prepare_distribution_metadataZ2AbstractDistribution.prepare_distribution_metadata.   s     "##r   )r	   )Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r   abcZabstractpropertyr   Zabstractmethodr   r    Z__static_attributes__Z__classdictcell__Z__classcell__)r   r   s   @@r   r   r      sg     $  	$ $ 	$ $ 	$ $ $r   r   )Z	metaclass)r!   Ztypingr    r   Zpip._internal.metadata.baser   Zpip._internal.reqr   Z"pip._internal.index.package_finderr   ZABCMetar   ) r   r   <module>r"      s'    
 * 8 0@*$S[[ *$r   