
    'js                        S SK Jr  S SKrS SKJr  S SKJr  S SKJr  \(       a  S SK	J
r
Jr   " S S\R                  S	9rg)
    )annotationsN)TYPE_CHECKING)BaseDistribution)InstallRequirement)BuildEnvironmentInstallerBuildIsolationModec                     ^  \ rS rSrSrSU 4S jjr\\R                  S	S j5       5       r	\R                  S
S j5       r
\R                            S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.
c                .   > [         TU ]  5         Xl        g N)super__init__req)selfr   	__class__s     X/var/www/html/KUNJ/venv/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   c                    [        5       er   r   )r   build_env_installerbuild_isolationcheck_build_depsallow_editabless        r   prepare_distribution_metadata2AbstractDistribution.prepare_distribution_metadata1   s     "##r   )r   )r   r   returnNone)r&   z
str | None)r&   r   )
r    r   r!   r   r"   boolr#   r(   r&   r'   )__name__
__module____qualname____firstlineno____doc__r   propertyabcabstractmethodr   r   r$   __static_attributes____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>r;      s*    " 
   8 0U,$S[[ ,$r   