3
gI9              	   @   s^  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mZmZmZ ddddd	gZeeef Zeee
eef f Zeeeef Zeee
eee
eef e
eef f d
f f Ze
ee
ed
f eeeef Ze
ee
ed
f f Zeeeef eeef gef Ze jdddddddgZeed. dddZG dd deZ G dd dZ!G dd de!Z"ej#dej$Z%ddddddZ&eee dddZ'eedd d!Z(d"Z)G d#d de!Z*eeee+e	f ee
eef  d$d%d&Z,ej#d'Z-eee d(d)d*Z.ee
ed
f ee
eef  ee
eef  ee
eef  ee
e  ed+d,d-Z/dS )/    N)CallableIteratorListOptionalSupportsIntTupleUnion   )InfinityInfinityTypeNegativeInfinityNegativeInfinityTypeparseVersionLegacyVersionInvalidVersionVERSION_PATTERN._Versionepochreleasedevprepostlocal)versionreturnc             C   s&   yt | S  tk
r    t| S X dS )z
    Parse the given version string and return either a :class:`Version` object
    or a :class:`LegacyVersion` object depending on if the given version is
    a valid PEP 440 version or a legacy version.
    N)r   r   r   )r    r   [/var/www/tester-filtro-web/env/lib/python3.6/site-packages/pip/_vendor/packaging/version.pyr   *   s    c               @   s   e Zd ZdZdS )r   zF
    An invalid version was found, users should refer to PEP 440.
    N)__name__
__module____qualname____doc__r   r   r   r   r   6   s   c               @   s   e Zd ZU eeef edddZd e	dddZ
d e	dddZee	dd	d
Zd e	dddZd e	dddZee	dddZdS )_BaseVersion)r   c             C   s
   t | jS )N)hash_key)selfr   r   r   __hash__?   s    z_BaseVersion.__hash__)otherr   c             C   s   t |tstS | j|jk S )N)
isinstancer"   NotImplementedr$   )r%   r'   r   r   r   __lt__E   s    
z_BaseVersion.__lt__c             C   s   t |tstS | j|jkS )N)r(   r"   r)   r$   )r%   r'   r   r   r   __le__K   s    
z_BaseVersion.__le__c             C   s   t |tstS | j|jkS )N)r(   r"   r)   r$   )r%   r'   r   r   r   __eq__Q   s    
z_BaseVersion.__eq__c             C   s   t |tstS | j|jkS )N)r(   r"   r)   r$   )r%   r'   r   r   r   __ge__W   s    
z_BaseVersion.__ge__c             C   s   t |tstS | j|jkS )N)r(   r"   r)   r$   )r%   r'   r   r   r   __gt__]   s    
z_BaseVersion.__gt__c             C   s   t |tstS | j|jkS )N)r(   r"   r)   r$   )r%   r'   r   r   r   __ne__c   s    
z_BaseVersion.__ne__N)r   r   r    r   CmpKeyLegacyCmpKeyr$   intr&   boolr*   r+   objectr,   r-   r.   r/   r   r   r   r   r"   <   s   
r"   c               @   s   e Zd ZeddddZedddZeddd	Zeedd
dZeedddZ	ee
dddZeddddZeddddZeddddZeddddZeddddZeedddZeedddZeedddZdS ) r   N)r   r   c             C   s&   t || _t| j| _tjdt d S )NzZCreating a LegacyVersion has been deprecated and will be removed in the next major release)str_version_legacy_cmpkeyr$   warningswarnDeprecationWarning)r%   r   r   r   r   __init__k   s
    
zLegacyVersion.__init__)r   c             C   s   | j S )N)r6   )r%   r   r   r   __str__u   s    zLegacyVersion.__str__c             C   s   d|  dS )Nz<LegacyVersion('z')>r   )r%   r   r   r   __repr__x   s    zLegacyVersion.__repr__c             C   s   | j S )N)r6   )r%   r   r   r   public{   s    zLegacyVersion.publicc             C   s   | j S )N)r6   )r%   r   r   r   base_version   s    zLegacyVersion.base_versionc             C   s   dS )Nr	   r   )r%   r   r   r   r      s    zLegacyVersion.epochc             C   s   d S )Nr   )r%   r   r   r   r      s    zLegacyVersion.releasec             C   s   d S )Nr   )r%   r   r   r   r      s    zLegacyVersion.prec             C   s   d S )Nr   )r%   r   r   r   r      s    zLegacyVersion.postc             C   s   d S )Nr   )r%   r   r   r   r      s    zLegacyVersion.devc             C   s   d S )Nr   )r%   r   r   r   r      s    zLegacyVersion.localc             C   s   dS )NFr   )r%   r   r   r   is_prerelease   s    zLegacyVersion.is_prereleasec             C   s   dS )NFr   )r%   r   r   r   is_postrelease   s    zLegacyVersion.is_postreleasec             C   s   dS )NFr   )r%   r   r   r   is_devrelease   s    zLegacyVersion.is_devrelease)r   r   r    r5   r;   r<   r=   propertyr>   r?   r2   r   r   r   r   r   r   r3   rA   rB   rC   r   r   r   r   r   j   s2   
z(\d+ | [a-z]+ | \.| -)czfinal-@)r   preview-rcr   )sr   c             c   sb   xVt j| D ]H}tj||}| s|dkr,q|d d dkrJ|jdV  qd| V  qW dV  d S )N.r	   
0123456789   *z*final)_legacy_version_component_resplit_legacy_version_replacement_mapgetzfill)rJ   partr   r   r   _parse_version_parts   s    rU   c             C   s   d}g }xlt | j D ]\}|jdrh|dk rJx|rH|d dkrH|j  q.W x|rf|d dkrf|j  qLW |j| qW |t|fS )	Nr	   rN   z*finalz*final-Z00000000r@   r@   r@   )rU   lower
startswithpopappendtuple)r   r   partsrT   r   r   r   r7      s    
r7   a  
    v?
    (?:
        (?:(?P<epoch>[0-9]+)!)?                           # epoch
        (?P<release>[0-9]+(?:\.[0-9]+)*)                  # release segment
        (?P<pre>                                          # pre-release
            [-_\.]?
            (?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview))
            [-_\.]?
            (?P<pre_n>[0-9]+)?
        )?
        (?P<post>                                         # post release
            (?:-(?P<post_n1>[0-9]+))
            |
            (?:
                [-_\.]?
                (?P<post_l>post|rev|r)
                [-_\.]?
                (?P<post_n2>[0-9]+)?
            )
        )?
        (?P<dev>                                          # dev release
            [-_\.]?
            (?P<dev_l>dev)
            [-_\.]?
            (?P<dev_n>[0-9]+)?
        )?
    )
    (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))?       # local version
c               @   sp  e Zd Zejde d ejejB Ze	ddddZ
e	ddd	Ze	dd
dZeedddZeeedf dddZeeee	ef  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dS ))r   z^\s*z\s*$N)r   r   c          	   C   s   | j j|}|s td| dt|jdr:t|jdndtdd |jdjdD t|jd	|jd
t|jd|jdp|jdt|jd|jdt	|jdd| _
t| j
j| j
j| j
j| j
j| j
j| j
j| _d S )NzInvalid version: ''r   r   c             s   s   | ]}t |V  qd S )N)r2   ).0ir   r   r   	<genexpr>  s    z#Version.__init__.<locals>.<genexpr>r   rK   Zpre_lZpre_nZpost_lZpost_n1Zpost_n2Zdev_lZdev_nr   )r   r   r   r   r   r   )_regexsearchr   r   groupr2   rZ   rP   _parse_letter_version_parse_local_versionr6   _cmpkeyr   r   r   r   r   r   r$   )r%   r   matchr   r   r   r;     s$    zVersion.__init__)r   c             C   s   d|  dS )Nz
<Version('z')>r   )r%   r   r   r   r=   "  s    zVersion.__repr__c             C   s   g }| j dkr |j| j  d |jdjdd | jD  | jd k	rb|jdjdd | jD  | jd k	r~|jd| j  | jd k	r|jd	| j  | jd k	r|jd
| j  dj|S )Nr   !rK   c             s   s   | ]}t |V  qd S )N)r5   )r]   xr   r   r   r_   -  s    z"Version.__str__.<locals>.<genexpr> c             s   s   | ]}t |V  qd S )N)r5   )r]   rh   r   r   r   r_   1  s    z.postz.dev+)r   rY   joinr   r   r   r   r   )r%   r[   r   r   r   r<   %  s    




zVersion.__str__c             C   s   | j j}|S )N)r6   r   )r%   Z_epochr   r   r   r   A  s    zVersion.epoch.c             C   s   | j j}|S )N)r6   r   )r%   _releaser   r   r   r   F  s    zVersion.releasec             C   s   | j j}|S )N)r6   r   )r%   _prer   r   r   r   K  s    zVersion.prec             C   s   | j jr| j jd S d S )Nr	   )r6   r   )r%   r   r   r   r   P  s    zVersion.postc             C   s   | j jr| j jd S d S )Nr	   )r6   r   )r%   r   r   r   r   T  s    zVersion.devc             C   s(   | j jr djdd | j jD S d S d S )NrK   c             s   s   | ]}t |V  qd S )N)r5   )r]   rh   r   r   r   r_   [  s    z Version.local.<locals>.<genexpr>)r6   r   rk   )r%   r   r   r   r   X  s    zVersion.localc             C   s   t | jddd S )Nrj   r	   r   )r5   rP   )r%   r   r   r   r>   _  s    zVersion.publicc             C   sF   g }| j dkr |j| j  d |jdjdd | jD  dj|S )Nr   rg   rK   c             s   s   | ]}t |V  qd S )N)r5   )r]   rh   r   r   r   r_   l  s    z'Version.base_version.<locals>.<genexpr>ri   )r   rY   rk   r   )r%   r[   r   r   r   r?   c  s
    
zVersion.base_versionc             C   s   | j d k	p| jd k	S )N)r   r   )r%   r   r   r   rA   p  s    zVersion.is_prereleasec             C   s
   | j d k	S )N)r   )r%   r   r   r   rB   t  s    zVersion.is_postreleasec             C   s
   | j d k	S )N)r   )r%   r   r   r   rC   x  s    zVersion.is_devreleasec             C   s   t | jdkr| jd S dS )Nr	   r   )lenr   )r%   r   r   r   major|  s    zVersion.majorc             C   s   t | jdkr| jd S dS )N   r	   r   )rn   r   )r%   r   r   r   minor  s    zVersion.minorc             C   s   t | jdkr| jd S dS )N   rp   r   )rn   r   )r%   r   r   r   micro  s    zVersion.micro) r   r   r    recompiler   VERBOSE
IGNORECASEr`   r5   r;   r=   r<   rD   r2   r   r   r   r   r   r   r   r   r>   r?   r3   rA   rB   rC   ro   rq   rs   r   r   r   r   r     s@   )letternumberr   c             C   sx   | rZ|d krd}| j  } | dkr&d} n(| dkr4d} n| dkrBd	} n| dkrNd} | t|fS |  rt|rtd} | t|fS d S )Nr   alphaabetabrE   r   rG   rI   revrr   )rE   r   rG   )r~   r   )rV   r2   )rx   ry   r   r   r   rc     s"    
rc   z[\._-])r   r   c             C   s$   | dk	r t dd tj| D S dS )zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Nc             s   s&   | ]}|j  s|j nt|V  qd S )N)isdigitrV   r2   )r]   rT   r   r   r   r_     s   z'_parse_local_version.<locals>.<genexpr>)rZ   _local_version_separatorsrP   )r   r   r   r   rd     s
    rd   )r   r   r   r   r   r   r   c             C   s   t tttjdd t|}|d kr>|d kr>|d k	r>t}n|d krLt}n|}|d kr^t}n|}|d krpt}	n|}	|d krt}
nt dd |D }
| ||||	|
fS )Nc             S   s   | dkS )Nr   r   )rh   r   r   r   <lambda>  s    z_cmpkey.<locals>.<lambda>c             s   s(   | ] }t |tr|d fnt|fV  qdS )ri   N)r(   r2   r   )r]   r^   r   r   r   r_     s    z_cmpkey.<locals>.<genexpr>)rZ   reversedlist	itertools	dropwhiler   r
   )r   r   r   r   r   r   rl   rm   Z_postZ_dev_localr   r   r   re     s$    	re   )r   r   )0collectionsr   rt   r8   typingr   r   r   r   r   r   r   Z_structuresr
   r   r   r   __all__ZInfiniteTypesr5   r2   ZPrePostDevTypeZSubLocalTypeZ	LocalTyper0   r1   r3   ZVersionComparisonMethod
namedtupler   r   
ValueErrorr   r"   r   ru   rv   rO   rQ   rU   r7   r   r   bytesrc   r   rd   re   r   r   r   r   <module>   sd   $
.>: 
"


