3
g                 @   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j!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edS )
EntryPointN)__name__
__module____qualname__strnamevaluegroup r   r   b/var/www/tester-filtro-web/env/lib/python3.6/site-packages/pip/_internal/metadata/pkg_resources.pyr      s   
r   c               @   s2  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f f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*   |j  }t|||j}W d Q R X | |S )N)
as_zipfiler   location)clsr'   r   zfr"   r   r   r    
from_wheel#   s    
zDistribution.from_wheel)r#   c             C   s   | j jS )N)r$   r)   )r%   r   r   r    r)   )   s    zDistribution.locationc             C   s   | j jS )N)r$   egg_info)r%   r   r   r    info_directory-   s    zDistribution.info_directoryc             C   s   t | jjS )N)r   r$   project_name)r%   r   r   r    canonical_name1   s    zDistribution.canonical_namec             C   s   t | jjS )N)parse_versionr$   version)r%   r   r   r    r2   5   s    zDistribution.versionc             C   s
   t | jS )N)r   r$   )r%   r   r   r    	installer9   s    zDistribution.installerc             C   s   t j| jS )N)r   dist_is_localr$   )r%   r   r   r    local=   s    zDistribution.localc             C   s   t j| jS )N)r   dist_in_usersiter$   )r%   r   r   r    in_usersiteA   s    zDistribution.in_usersitec             C   s   t j| jS )N)r   dist_in_site_packagesr$   )r%   r   r   r    in_site_packagesE   s    zDistribution.in_site_packages)r   r#   c             C   s    | j j|st|| j j|S )N)r$   has_metadataFileNotFoundErrorr   )r%   r   r   r   r    	read_textI   s    zDistribution.read_textc             c   sb   x\| j j j D ]J\}}x@|j D ]4\}}t|jd\}}}t|j |j |dV  q"W qW 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 )N)r   r$   )r%   r   r   r    metadataT   s    zDistribution.metadata)extrasr#   c             C   s"   |rt |j| jj}| jj|S )N)	frozensetintersectionr$   rG   requires)r%   rG   r   r   r    iter_dependenciesX   s    zDistribution.iter_dependenciesc             C   s   | j jS )N)r$   rG   )r%   r   r   r    iter_provided_extras]   s    z!Distribution.iter_provided_extras)#r   r   r   r   r!   r&   classmethodr   r   r,   propertyr   r)   r.   r
   r0   r   r2   r3   boolr5   r7   r9   r<   r   r   rE   emailmessageMessagerF   r   r	   rK   rL   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 )N)_ws)r%   rT   r   r   r    r&   b   s    zEnvironment.__init__)r#   c             C   s
   | t jS )N)r   working_set)r*   r   r   r    defaulte   s    zEnvironment.default)pathsr#   c             C   s   | t j|S )N)r   
WorkingSet)r*   rX   r   r   r    
from_pathsi   s    zEnvironment.from_paths)r   r#   c             C   s,   t |}x| j D ]}|j|kr|S qW 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_distributionsr0   )r%   r   r0   r"   r   r   r    _search_distributionm   s
    
z Environment._search_distributionc             C   sD   | j |}|r|S y| jj| W n tjk
r8   d S X | j |S )N)r\   rU   requirer   DistributionNotFound)r%   r   r"   r   r   r    get_distributiony   s    

zEnvironment.get_distributionc             c   s   x| j D ]}t|V  qW d S )N)rU   r!   )r%   r"   r   r   r    _iter_distributions   s    zEnvironment._iter_distributions)r   r   r   r   rY   r&   rM   r   rW   r   r   r   rZ   r   r\   r_   r   r`   r   r   r   r    rS   a   s   rS   )'email.messagerP   loggingtypingr   r   r   r   r   r   pip._vendorr   Z"pip._vendor.packaging.requirementsr	   pip._vendor.packaging.utilsr
   r   Zpip._vendor.packaging.versionr   r1   Zpip._internal.utilsr   pip._internal.utils.packagingr   r   pip._internal.utils.wheelr   baser   r   r   r   r   	getLoggerr   loggerr   r!   rS   r   r   r   r    <module>   s    
B