a
    Dmg                     @   s   d dl Zd dlZd dlmZmZmZmZmZm	Z	 d dl
mZ d dlmZ d dlmZmZ d dlmZ d dlmZ d dlmZmZ d d	lmZ d
dlmZmZmZmZm Z  e!e"Z#G dd deZ$G dd deZ%G dd deZ&dS )    N)
CollectionIterableIteratorList
NamedTupleOptional)pkg_resources)Requirement)NormalizedNamecanonicalize_name)parse)misc)get_installerget_metadata)$pkg_resources_distribution_for_wheel   )BaseDistributionBaseEntryPointBaseEnvironmentDistributionVersionWheelc                   @   s&   e Zd ZU eed< eed< eed< dS )
EntryPointnamevaluegroupN)__name__
__module____qualname__str__annotations__ r    r    [/var/www/html/idle/venv/lib/python3.9/site-packages/pip/_internal/metadata/pkg_resources.pyr      s   
r   c                   @   s0  e Zd ZejddddZeeed dddZ	e
ee dd	d
Ze
ee dddZe
edddZe
edddZe
edddZe
edddZe
edddZe
edddZeedddZee dddZe
ejjdddZd&ee ee  d!d"d#Z!ee dd$d%Z"dS )'DistributionN)distreturnc                 C   s
   || _ d S N)_distselfr#   r    r    r!   __init__    s    zDistribution.__init__)wheelr   r$   c                 C   s>   |  }t|||j}W d    n1 s,0    Y  | |S r%   )
as_zipfiler   location)clsr*   r   zfr#   r    r    r!   
from_wheel#   s    
,zDistribution.from_wheelr$   c                 C   s   | j jS r%   )r&   r,   r(   r    r    r!   r,   )   s    zDistribution.locationc                 C   s   | j jS r%   )r&   egg_infor1   r    r    r!   info_directory-   s    zDistribution.info_directoryc                 C   s   t | jjS r%   )r   r&   project_namer1   r    r    r!   canonical_name1   s    zDistribution.canonical_namec                 C   s   t | jjS r%   )parse_versionr&   versionr1   r    r    r!   r7   5   s    zDistribution.versionc                 C   s
   t | jS r%   )r   r&   r1   r    r    r!   	installer9   s    zDistribution.installerc                 C   s   t | jS r%   )r   dist_is_localr&   r1   r    r    r!   local=   s    zDistribution.localc                 C   s   t | jS r%   )r   dist_in_usersiter&   r1   r    r    r!   in_usersiteA   s    zDistribution.in_usersitec                 C   s   t | jS r%   )r   dist_in_site_packagesr&   r1   r    r    r!   in_site_packagesE   s    zDistribution.in_site_packagesr   r$   c                 C   s    | j |st|| j |S r%   )r&   has_metadataFileNotFoundErrorr   )r(   r   r    r    r!   	read_textI   s    zDistribution.read_textc                 c   sZ   | j   D ]F\}}| D ]4\}}t|d\}}}t| | |dV  qqd S )N=)r   r   r   )r&   get_entry_mapitemsr   	partitionr   strip)r(   r   entriesr   entry_point_r   r    r    r!   iter_entry_pointsN   s    zDistribution.iter_entry_pointsc                 C   s
   t | jS r%   )r   r&   r1   r    r    r!   metadataT   s    zDistribution.metadatar    )extrasr$   c                 C   s"   |rt || jj}| j|S r%   )	frozensetintersectionr&   rM   requires)r(   rM   r    r    r!   iter_dependenciesX   s    zDistribution.iter_dependenciesc                 C   s   | j jS r%   )r&   rM   r1   r    r    r!   iter_provided_extras]   s    z!Distribution.iter_provided_extras)r    )#r   r   r   r   r"   r)   classmethodr   r   r/   propertyr   r,   r3   r
   r5   r   r7   r8   boolr:   r<   r>   rB   r   r   rK   emailmessageMessagerL   r   r	   rQ   rR   r    r    r    r!   r"      s2   r"   c                   @   s   e Zd ZejddddZeedddZee	e
e  edd	d
Zee	e dddZee	e dddZee dddZdS )EnvironmentN)wsr$   c                 C   s
   || _ d S r%   )_ws)r(   rZ   r    r    r!   r)   b   s    zEnvironment.__init__r0   c                 C   s
   | t jS r%   )r   working_set)r-   r    r    r!   defaulte   s    zEnvironment.default)pathsr$   c                 C   s   | t |S r%   )r   
WorkingSet)r-   r^   r    r    r!   
from_pathsi   s    zEnvironment.from_pathsr?   c                 C   s,   t |}|  D ]}|j|kr|  S qdS )zFind a distribution matching the ``name`` in the environment.

        This searches from *all* distributions available in the environment, to
        match the behavior of ``pkg_resources.get_distribution()``.
        N)r   iter_distributionsr5   )r(   r   r5   r#   r    r    r!   _search_distributionm   s
    

z Environment._search_distributionc                 C   sD   |  |}|r|S z| j| W n tjy8   Y d S 0 |  |S r%   )rb   r[   requirer   DistributionNotFound)r(   r   r#   r    r    r!   get_distributiony   s    

zEnvironment.get_distributionc                 c   s   | j D ]}t|V  qd S r%   )r[   r"   r'   r    r    r!   _iter_distributions   s    
zEnvironment._iter_distributions)r   r   r   r   r_   r)   rS   r   r]   r   r   r   r`   r   rb   re   r   rf   r    r    r    r!   rY   a   s   rY   )'email.messagerV   loggingtypingr   r   r   r   r   r   pip._vendorr   Z"pip._vendor.packaging.requirementsr	   pip._vendor.packaging.utilsr
   r   Zpip._vendor.packaging.versionr   r6   Zpip._internal.utilsr   pip._internal.utils.packagingr   r   pip._internal.utils.wheelr   baser   r   r   r   r   	getLoggerr   loggerr   r"   rY   r    r    r    r!   <module>   s    
B