o
    |ŸŽié  ã                   @   sú   d dl Zd dlZd dlZd dlmZ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 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  er^d dl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)ÚTYPE_CHECKINGÚ
CollectionÚIterableÚIteratorÚListÚ
NamedTupleÚOptional)Úpkg_resources)ÚRequirement)Úcanonicalize_name)Úparse)Úmisc)Úget_installerÚget_metadata)Ú$pkg_resources_distribution_for_wheelé   )ÚBaseDistributionÚBaseEntryPointÚBaseEnvironmentÚDistributionVersion)ÚNormalizedNamec                   @   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    únC:\Users\psant\Downloads\Anu Raj Backend\school\venv\Lib\site-packages\pip/_internal/metadata/pkg_resources.pyr      s   
 r   c                   @   s6  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'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S ))ÚDistributionÚdistÚreturnNc                 C   ó
   || _ d S ©N)Ú_dist©Úselfr#   r    r    r!   Ú__init__&   ó   
zDistribution.__init__Úpathr   c                 C   sH   t j|dd��}t|||ƒ}W d   ƒ | |ƒS 1 sw   Y  | |ƒS )NT)Ú
allowZip64)ÚzipfileÚZipFiler   )Úclsr,   r   Úzfr#   r    r    r!   Ú
from_wheel)   s   
ÿþzDistribution.from_wheelc                 C   ó   | j jS r&   )r'   Úlocation©r)   r    r    r!   r4   /   ó   zDistribution.locationc                 C   r3   r&   )r'   Úegg_infor5   r    r    r!   Úinfo_directory3   r6   zDistribution.info_directoryr   c                 C   ó   t | jjƒS r&   )r   r'   Úproject_namer5   r    r    r!   Úcanonical_name7   ó   zDistribution.canonical_namec                 C   r9   r&   )Úparse_versionr'   Úversionr5   r    r    r!   r>   ;   r<   zDistribution.versionc                 C   ó
   t | jƒS r&   )r   r'   r5   r    r    r!   Ú	installer?   ó   
zDistribution.installerc                 C   ó   t  | j¡S r&   )r   Údist_is_editabler'   r5   r    r    r!   ÚeditableC   r<   zDistribution.editablec                 C   rB   r&   )r   Údist_is_localr'   r5   r    r    r!   ÚlocalG   r<   zDistribution.localc                 C   rB   r&   )r   Údist_in_usersiter'   r5   r    r    r!   Úin_usersiteK   r<   zDistribution.in_usersitec                 C   rB   r&   )r   Údist_in_site_packagesr'   r5   r    r    r!   Úin_site_packagesO   r<   zDistribution.in_site_packagesc                 C   s    | j  |¡s
t|ƒ‚| j  |¡S r&   )r'   Úhas_metadataÚFileNotFoundErrorr   )r)   r   r    r    r!   Ú	read_textS   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_pointsX   s   €þÿzDistribution.iter_entry_pointsc                 C   r?   r&   )r   r'   r5   r    r    r!   Úmetadata^   rA   zDistribution.metadatar    Úextrasc                 C   s"   |rt |ƒ | jj¡}| j |¡S r&   )Ú	frozensetÚintersectionr'   rX   Úrequires)r)   rX   r    r    r!   Úiter_dependenciesb   s   zDistribution.iter_dependencies)r$   r   )r    )!r   r   r   r	   r"   r*   Úclassmethodr   r2   Úpropertyr   r4   r8   r;   r   r>   r@   ÚboolrD   rF   rH   rJ   rM   r   r   rV   ÚemailÚmessageÚMessagerW   r   r
   r\   r    r    r    r!   r"   %   s6     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)   rd   r    r    r!   r*   i   r+   zEnvironment.__init__c                 C   s
   | t jƒS r&   )r	   Úworking_set)r0   r    r    r!   Údefaultl   rA   zEnvironment.defaultÚpathsc                 C   s   | t  |¡ƒS r&   )r	   Ú
WorkingSet)r0   rh   r    r    r!   Ú
from_pathsp   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_distributionsr;   )r)   r   r;   r#   r    r    r!   Ú_search_distributiont   s   
ÿz Environment._search_distributionc                 C   sD   |   |¡}|r	|S z| j |¡ W n tjy   Y d S w |   |¡S r&   )rl   re   Úrequirer	   ÚDistributionNotFound)r)   r   r#   r    r    r!   Úget_distribution€   s   

ÿ
zEnvironment.get_distributionc                 c   s   � | j D ]}t|ƒV  qd S r&   )re   r"   r(   r    r    r!   Ú_iter_distributions—   s   €
ÿzEnvironment._iter_distributions)r   r   r   r	   ri   r*   r]   r   rg   r   r   r   rj   r   rl   ro   r   rp   r    r    r    r!   rc   h   s    rc   )(Úemail.messager`   Úloggingr.   Útypingr   r   r   r   r   r   r   Úpip._vendorr	   Z"pip._vendor.packaging.requirementsr
   Úpip._vendor.packaging.utilsr   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"   rc   r    r    r    r!   Ú<module>   s$    $

C