
    q"h                     t    S SK r S SKJrJr  S SKJr  S SKJr  \(       a  S SKJ	r	   " S S\ R                  S9rg)	    N)TYPE_CHECKINGOptional)BaseDistribution)InstallRequirement)PackageFinderc            	          ^  \ rS rSrSrS\SS4U 4S jjr\R                  S\	\
   4S j5       r\R                  S\4S j5       r\R                  S	S
S\S\SS4S j5       rSrU =r$ )AbstractDistribution   az  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                 .   > [         TU ]  5         Xl        g N)super__init__r   )selfr   	__class__s     R/var/www/html/env/lib/python3.13/site-packages/pip/_internal/distributions/base.pyr   AbstractDistribution.__init__   s        c                     [        5       e)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_id%AbstractDistribution.build_tracker_id"   s     "##r   c                     [        5       er   r   r   s    r   get_metadata_distribution.AbstractDistribution.get_metadata_distribution*   s    !##r   finderr   build_isolationcheck_build_depsc                     [        5       er   r   )r   r   r    r!   s       r   prepare_distribution_metadata2AbstractDistribution.prepare_distribution_metadata.   s     "##r   )r   )__name__
__module____qualname____firstlineno____doc__r   r   abcabstractpropertyr   strr   abstractmethodr   r   boolr#   __static_attributes____classcell__)r   s   @r   r	   r	      s    $. 4  	$(3- $ $ 	$+; $ $ 	$$ $ 	$
 
$ $r   r	   )	metaclass)r*   typingr   r   pip._internal.metadata.baser   pip._internal.reqr   "pip._internal.index.package_finderr   ABCMetar	    r   r   <module>r8      s'    
 * 8 0@*$S[[ *$r   