o
    g}”eá  ã                   @   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    úm/Users/abhinavbhinder/Documents/map/venv/lib/python3.10/site-packages/pip/_internal/metadata/pkg_resources.pyr      s   
 r   c                   @   s:  e Zd Zdejddfdd„Zedededd fdd	„ƒZ	e
dee fd
d„ƒZe
dee fdd„ƒZe
defdd„ƒZe
defdd„ƒZe
defdd„ƒZe
defdd„ƒZe
defdd„ƒZe
defdd„ƒZdedefdd„Zdee fdd„Ze
dejjfdd„ƒZd&d!ee dee  fd"d#„Z!dee fd$d%„Z"dS )'ÚDistributionÚdistÚreturnNc                 C   ó
   || _ d S ©N)Ú_dist©Úselfr#   r    r    r!   Ú__init__    ó   
zDistribution.__init__Úwheelr   c                 C   sD   |  ¡ �}t|||jƒ}W d   ƒ | |ƒS 1 sw   Y  | |ƒS r&   )Ú
as_zipfiler   Úlocation)Úclsr,   r   Úzfr#   r    r    r!   Ú
from_wheel#   s   

ÿþzDistribution.from_wheelc                 C   ó   | j jS r&   )r'   r.   ©r)   r    r    r!   r.   )   ó   zDistribution.locationc                 C   r2   r&   )r'   Úegg_infor3   r    r    r!   Úinfo_directory-   r4   zDistribution.info_directoryc                 C   ó   t | jjƒS r&   )r   r'   Úproject_namer3   r    r    r!   Úcanonical_name1   ó   zDistribution.canonical_namec                 C   r7   r&   )Úparse_versionr'   Úversionr3   r    r    r!   r<   5   r:   zDistribution.versionc                 C   ó
   t | jƒS r&   )r   r'   r3   r    r    r!   Ú	installer9   ó   
zDistribution.installerc                 C   ó   t  | j¡S r&   )r   Údist_is_localr'   r3   r    r    r!   Úlocal=   r:   zDistribution.localc                 C   r@   r&   )r   Údist_in_usersiter'   r3   r    r    r!   Úin_usersiteA   r:   zDistribution.in_usersitec                 C   r@   r&   )r   Údist_in_site_packagesr'   r3   r    r    r!   Úin_site_packagesE   r:   zDistribution.in_site_packagesc                 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   s\   � | j  ¡  ¡ D ]#\}}| ¡ D ]\}}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   r=   r&   )r   r'   r3   r    r    r!   ÚmetadataT   r?   zDistribution.metadatar    Úextrasc                 C   s"   |rt |ƒ | jj¡}| j |¡S r&   )Ú	frozensetÚintersectionr'   rT   Úrequires)r)   rT   r    r    r!   Úiter_dependenciesX   s   zDistribution.iter_dependenciesc                 C   r2   r&   )r'   rT   r3   r    r    r!   Úiter_provided_extras]   s   z!Distribution.iter_provided_extras)r    )#r   r   r   r   r"   r*   Úclassmethodr   r   r1   Úpropertyr   r.   r6   r
   r9   r   r<   r>   ÚboolrB   rD   rF   rI   r   r   rR   ÚemailÚmessageÚMessagerS   r   r	   rX   rY   r    r    r    r!   r"      s4    r"   c                   @   sŽ   e Zd Zdejddfdd„Zedefdd„ƒZede	e
e  defd	d
„ƒZdede	e fdd„Zdede	e fdd„Zdee fdd„ZdS )ÚEnvironmentÚwsr$   Nc                 C   r%   r&   )Ú_ws)r)   ra   r    r    r!   r*   b   r+   zEnvironment.__init__c                 C   s
   | t jƒS r&   )r   Úworking_set)r/   r    r    r!   Údefaulte   r?   zEnvironment.defaultÚpathsc                 C   s   | t  |¡ƒS r&   )r   Ú
WorkingSet)r/   re   r    r    r!   Ú
from_pathsi   s   zEnvironment.from_pathsr   c                 C   s,   t |ƒ}|  ¡ D ]}|j|kr|  S qdS )zÛFind 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_distributionsr9   )r)   r   r9   r#   r    r    r!   Ú_search_distributionm   s   
ÿz Environment._search_distributionc                 C   sD   |   |¡}|r	|S z| j |¡ W n tjy   Y d S w |   |¡S r&   )ri   rb   Ú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&   )rb   r"   r(   r    r    r!   Ú_iter_distributions�   s   €
ÿzEnvironment._iter_distributions)r   r   r   r   rf   r*   rZ   r   rd   r   r   r   rg   r   ri   rl   r   rm   r    r    r    r!   r`   a   s    r`   )'Úemail.messager]   ÚloggingÚtypingr   r   r   r   r   r   Úpip._vendorr   Z"pip._vendor.packaging.requirementsr	   Úpip._vendor.packaging.utilsr
   r   Zpip._vendor.packaging.versionr   r;   Zpip._internal.utilsr   Úpip._internal.utils.packagingr   r   Úpip._internal.utils.wheelr   Úbaser   r   r   r   r   Ú	getLoggerr   Úloggerr   r"   r`   r    r    r    r!   Ú<module>   s     
B