o
    {ŸŽiÜ  ã                   @   sP   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„ de j	d�Z
dS )	é    N)ÚOptional)ÚDistribution)ÚPackageFinder)ÚInstallRequirementc                       s^   e Zd ZdZdeddf‡ fdd„Zejdee	 fdd„ƒZ
ejd	ed
eddfdd„ƒZ‡  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.
    ÚreqÚreturnNc                    s   t ƒ  ¡  || _d S ©N)ÚsuperÚ__init__r   )Úselfr   ©Ú	__class__© újC:\Users\psant\Downloads\Anu Raj Backend\school\venv\Lib\site-packages\pip/_internal/distributions/base.pyr      s   

zAbstractDistribution.__init__c                 C   ó   t ƒ ‚r	   ©ÚNotImplementedError)r   r   r   r   Úget_pkg_resources_distribution   s   z3AbstractDistribution.get_pkg_resources_distributionÚfinderÚbuild_isolationc                 C   r   r	   r   )r   r   r   r   r   r   Úprepare_distribution_metadata"   s   z2AbstractDistribution.prepare_distribution_metadata)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   ÚabcÚabstractmethodr   r   r   r   Úboolr   Ú__classcell__r   r   r   r   r   
   s    ÿÿþr   )Ú	metaclass)r   Útypingr   Úpip._vendor.pkg_resourcesr   Ú"pip._internal.index.package_finderr   Úpip._internal.reqr   ÚABCMetar   r   r   r   r   Ú<module>   s    