U
    cUh.)                     @   sB  d dl Zd dlZ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mZ d dlmZ d dlmZ d dlmZmZmZ d d	lmZ d d
lm Z m!Z! d dl"m#Z#m$Z$ ddl%m&Z&m'Z'm(Z(m)Z)m*Z* dddgZ+e,e-Z.dZ/G dd deZ0G dd dZ1G dd de&Z2G dd de(Z3dS )    N)
CollectionIterableIteratorListMapping
NamedTupleOptional)pkg_resources)Requirement)NormalizedNamecanonicalize_name)Version)parse)InvalidWheelNoneMetadataErrorUnsupportedWheel)egg_link_path_from_location)display_pathnormalize_path)parse_wheelread_wheel_metadata_file   )BaseDistributionBaseEntryPointBaseEnvironmentInfoPathWheelNAMEDistributionEnvironmentr	   c                   @   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)   d/opt/bot/vods_filmes/script/venv/lib/python3.8/site-packages/pip/_internal/metadata/pkg_resources.pyr    *   s   
r    c                   @   s   e Zd ZdZeeef eddddZeedddZ	eedd	d
Z
eee dddZeedddZeee dddZeeddddZdS )InMemoryMetadatazIMetadataProvider that reads metadata files from a dictionary.

    This also maps metadata decoding exceptions to our internal exception type.
    N)metadata
wheel_namereturnc                 C   s   || _ || _d S N)	_metadata_wheel_name)selfr,   r-   r)   r)   r*   __init__6   s    zInMemoryMetadata.__init__r!   r.   c                 C   s
   || j kS r/   )r0   r2   r!   r)   r)   r*   has_metadata:   s    zInMemoryMetadata.has_metadatac                 C   sV   z| j |  W S  tk
rP } z"td| j d| d| dW 5 d }~X Y nX d S )NzError decoding metadata for z: z in z file)r0   decodeUnicodeDecodeErrorr   r1   )r2   r!   er)   r)   r*   get_metadata=   s    zInMemoryMetadata.get_metadatac                 C   s   t | |S r/   )r	   Zyield_linesr:   r5   r)   r)   r*   get_metadata_linesF   s    z#InMemoryMetadata.get_metadata_linesc                 C   s   dS NFr)   r5   r)   r)   r*   metadata_isdirI   s    zInMemoryMetadata.metadata_isdirc                 C   s   g S r/   r)   r5   r)   r)   r*   metadata_listdirL   s    z!InMemoryMetadata.metadata_listdir)script_name	namespacer.   c                 C   s   d S r/   r)   )r2   r?   r@   r)   r)   r*   
run_scriptO   s    zInMemoryMetadata.run_script)r$   r%   r&   __doc__r   r'   bytesr3   boolr6   r:   r   r;   r=   r   r>   rA   r)   r)   r)   r*   r+   0   s   	r+   c                   @   s  e Zd ZejddddZeeee	f dddZ
ee	edd	d
Zeee	e	edddZeee	edddZ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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$j%j&dd(d)Z'd0e(e	 e!e) d+d,d-Z*e!e dd.d/Z+dS )1r   N)distr.   c                 C   s   || _ d | _d S r/   )_dist_Distribution__extra_mappingr2   rE   r)   r)   r*   r3   T   s    zDistribution.__init__r.   c                 C   s$   | j d krdd | jjD | _ | j S )Nc                 S   s   i | ]}t ||qS r)   )r   .0extrar)   r)   r*   
<dictcomp>]   s     z/Distribution._extra_mapping.<locals>.<dictcomp>)rG   rF   extrasr2   r)   r)   r*   _extra_mappingZ   s
    
zDistribution._extra_mapping)	directoryr.   c           	      C   s   | tj}tj|\}}t||}|drJtj}tj	|d }n.|dsXt
tj}tj	|d dd }||||d}| |S )Nz	.egg-infor   z
.dist-info-)project_namer,   )rstriposseppathsplitr	   ZPathMetadataendswithr   splitextAssertionErrorDistInfoDistribution)	clsrQ   Zdist_dirbase_dirZdist_dir_namer,   Zdist_cls	dist_namerE   r)   r)   r*   from_directoryc   s    
zDistribution.from_directory)metadata_contentsfilenamerS   r.   c                 C   s&   d|i}t j|t|||d}| |S )NMETADATAlocationr,   rS   )r	   r\   r+   )r]   ra   rb   rS   metadata_dictrE   r)   r)   r*   from_metadata_file_contentsw   s     z(Distribution.from_metadata_file_contents)wheelr!   r.   c              
      s   z>|  ,t|\ } fdd D }W 5 Q R X W nd tjk
rp } zt|j||W 5 d }~X Y n4 tk
r } zt| d| W 5 d }~X Y nX tj	|jt
||j|d}| |S )Nc                    s4   i | ],}|   d r|d dd t|qS )/r   )
startswithrX   r   )rK   rW   info_dirzfr)   r*   rM      s    z+Distribution.from_wheel.<locals>.<dictcomp>z has an invalid wheel, rd   )
as_zipfiler   namelistzipfile
BadZipFiler   re   r   r	   r\   r+   )r]   rh   r!   _rf   r9   rE   r)   rl   r*   
from_wheel   s     
$
zDistribution.from_wheelc                 C   s   | j jS r/   )rF   re   rO   r)   r)   r*   re      s    zDistribution.locationc                 C   s.   t | j}|r|}n| jr"| j}nd S t|S r/   )r   raw_namere   r   )r2   egg_linkre   r)   r)   r*   installed_location   s    
zDistribution.installed_locationc                 C   s   | j jS r/   )rF   egg_inforO   r)   r)   r*   info_location   s    zDistribution.info_locationc                 C   s,   zt | jjjW S  tk
r&   Y dS X d S r<   )rD   rF   Z	_providerrW   AttributeErrorrO   r)   r)   r*   installed_by_distutils   s    z#Distribution.installed_by_distutilsc                 C   s   t | jjS r/   )r   rF   rS   rO   r)   r)   r*   canonical_name   s    zDistribution.canonical_namec                 C   s   t | jjS r/   )parse_versionrF   versionrO   r)   r)   r*   r~      s    zDistribution.versionc                 C   s   | j jS r/   )rF   r~   rO   r)   r)   r*   raw_version   s    zDistribution.raw_version)rW   r.   c                 C   s   | j t|S r/   )rF   r6   r'   )r2   rW   r)   r)   r*   is_file   s    zDistribution.is_filec                 c   s   | j dE d H  d S )Nscripts)rF   r>   rO   r)   r)   r*   iter_distutils_script_names   s    z(Distribution.iter_distutils_script_namesc                 C   s>   t |}| j|st|| j|}|d kr:t| ||S r/   )r'   rF   r6   FileNotFoundErrorr:   r   )r2   rW   r!   contentr)   r)   r*   	read_text   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#   )rF   Zget_entry_mapitemsr'   	partitionr    strip)r2   r#   entriesr!   entry_pointrs   r"   r)   r)   r*   iter_entry_points   s    zDistribution.iter_entry_pointsc                 C   s   t | jtjrd}nd}z| |}W n@ tk
rf   | jrHt| j}n
t| j}t	
d| d}Y nX tj }|| | S )z
        :raises NoneMetadataError: if the distribution reports `has_metadata()`
            True but `get_metadata()` returns None.
        rc   zPKG-INFOzNo metadata found in %s )
isinstancerF   r	   r\   r   r   re   r   reprloggerwarningemailparser
FeedParserfeedclose)r2   metadata_namer,   Zdisplaying_pathZfeed_parserr)   r)   r*   _metadata_impl   s    



zDistribution._metadata_implr)   )rN   r.   c                    s:   |r.t  jt tt|@ } fdd|D } j|S )Nc                    s   g | ]} j | qS r)   )rP   rJ   rO   r)   r*   
<listcomp>   s     z2Distribution.iter_dependencies.<locals>.<listcomp>)setrP   mapr   rF   requires)r2   rN   Zrelevant_extrasr)   rO   r*   iter_dependencies   s    
zDistribution.iter_dependenciesc                 C   s
   | j  S r/   )rP   keysrO   r)   r)   r*   iter_provided_extras   s    z!Distribution.iter_provided_extras)r)   ),r$   r%   r&   r	   r   r3   propertyr   r   r'   rP   classmethodr   r`   rC   rg   r   rt   r   re   rw   ry   rD   r{   r|   r   r~   r   r   r   r   r   r   r   r   r   r   messageMessager   r   r
   r   r   r)   r)   r)   r*   r   S   sD   
		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 dddZee	e dddZee	e dddZdS )r   N)wsr.   c                 C   s
   || _ d S r/   )_ws)r2   r   r)   r)   r*   r3      s    zEnvironment.__init__rI   c                 C   s
   | t jS r/   )r	   Zworking_set)r]   r)   r)   r*   default  s    zEnvironment.default)pathsr.   c                 C   s   | t |S r/   )r	   
WorkingSet)r]   r   r)   r)   r*   
from_paths  s    zEnvironment.from_pathsc                 c   s   | j D ]}t|V  qd S r/   )r   r   rH   r)   r)   r*   _iter_distributions	  s    
zEnvironment._iter_distributionsr4   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_all_distributionsr|   )r2   r!   r|   rE   r)   r)   r*   _search_distribution  s
    

z Environment._search_distributionc                 C   sF   |  |}|r|S z| j| W n tjk
r:   Y d S X |  |S r/   )r   r   Zrequirer	   DistributionNotFound)r2   r!   rE   r)   r)   r*   get_distribution  s    

zEnvironment.get_distribution)r$   r%   r&   r	   r   r3   r   r   r   r   r   r'   r   r   r   r   r   r   r)   r)   r)   r*   r      s   )4email.messager   email.parserloggingrU   rq   typingr   r   r   r   r   r   r   pip._vendorr	   "pip._vendor.packaging.requirementsr
   Zpip._vendor.packaging.utilsr   r   pip._vendor.packaging.versionr   r   r}   pip._internal.exceptionsr   r   r   pip._internal.utils.egg_linkr   pip._internal.utils.miscr   r   pip._internal.utils.wheelr   r   baser   r   r   r   r   __all__	getLoggerr$   r   r   r    r+   r   r   r)   r)   r)   r*   <module>   s.   $


# +