U
    ƒIÀdÅ  ã                   @   sD   d dl 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)ÚPackageFinder)ÚBaseDistribution)ÚInstallRequirementc                       sV   e Zd ZdZeddœ‡ fdd„Zejedœdd„ƒZ	eje
eedd	œ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.
    N)ÚreqÚreturnc                    s   t ƒ  ¡  || _d S ©N)ÚsuperÚ__init__r   )Úselfr   ©Ú	__class__© úY/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pip/_internal/distributions/base.pyr
      s    
zAbstractDistribution.__init__)r   c                 C   s
   t ƒ ‚d S r   ©ÚNotImplementedError)r   r   r   r   Úget_metadata_distribution   s    z.AbstractDistribution.get_metadata_distribution)ÚfinderÚbuild_isolationÚcheck_build_depsr   c                 C   s
   t ƒ ‚d S 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   Úboolr   Ú__classcell__r   r   r   r   r      s   ûr   )Ú	metaclass)	r   Ú"pip._internal.index.package_finderr   Zpip._internal.metadata.baser   Úpip._internal.reqr   ÚABCMetar   r   r   r   r   Ú<module>   s   