
0c@_n<              
   @   s  d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l Z d d l m Z m	 Z	 d d l
 m Z e rd  d l m Z m Z m Z m Z m Z m Z m Z d d l m Z m 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 d	 d
 d d d g Z  e j! d d d d d d d g  Z" d d	   Z# Gd d   d e$  Z% Gd d   d e&  Z' Gd d   d e'  Z( e j) d e j*  Z+ d d d d d d d d d d  i Z, d! d"   Z- d# d$   Z. d% Z/ Gd& d
   d
 e'  Z0 d' d(   Z1 e j) d)  Z2 d* d+   Z3 d, d-   Z4 d S).    )absolute_importdivisionprint_functionN   )InfinityNegativeInfinity)TYPE_CHECKING)CallableIteratorListOptionalSupportsIntTupleUnion)InfinityTypeNegativeInfinityType.parseVersionLegacyVersionInvalidVersionVERSION_PATTERN_Versionepochreleasedevprepostlocalc             C   s1   y t  |   SWn t k
 r, t |   SYn Xd 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   )version r   </tmp/pip-build-jynh7p1z/pip/pip/_vendor/packaging/version.pyr   0   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   =   s   c               @   sv   e  Z d  Z d Z d d   Z d d   Z d d   Z d d	   Z d
 d   Z d d   Z	 d d   Z
 d d   Z d S)_BaseVersionNc             C   s   t  |  j  S)N)hash_key)selfr   r   r    __hash__F   s    z_BaseVersion.__hash__c             C   s   |  j  | d d    S)Nc             S   s
   |  | k  S)Nr   )sor   r   r    <lambda>L   s    z%_BaseVersion.__lt__.<locals>.<lambda>)_compare)r(   otherr   r   r    __lt__J   s    z_BaseVersion.__lt__c             C   s   |  j  | d d    S)Nc             S   s
   |  | k S)Nr   )r*   r+   r   r   r    r,   P   s    z%_BaseVersion.__le__.<locals>.<lambda>)r-   )r(   r.   r   r   r    __le__N   s    z_BaseVersion.__le__c             C   s   |  j  | d d    S)Nc             S   s
   |  | k S)Nr   )r*   r+   r   r   r    r,   T   s    z%_BaseVersion.__eq__.<locals>.<lambda>)r-   )r(   r.   r   r   r    __eq__R   s    z_BaseVersion.__eq__c             C   s   |  j  | d d    S)Nc             S   s
   |  | k S)Nr   )r*   r+   r   r   r    r,   X   s    z%_BaseVersion.__ge__.<locals>.<lambda>)r-   )r(   r.   r   r   r    __ge__V   s    z_BaseVersion.__ge__c             C   s   |  j  | d d    S)Nc             S   s
   |  | k S)Nr   )r*   r+   r   r   r    r,   \   s    z%_BaseVersion.__gt__.<locals>.<lambda>)r-   )r(   r.   r   r   r    __gt__Z   s    z_BaseVersion.__gt__c             C   s   |  j  | d d    S)Nc             S   s
   |  | k S)Nr   )r*   r+   r   r   r    r,   `   s    z%_BaseVersion.__ne__.<locals>.<lambda>)r-   )r(   r.   r   r   r    __ne__^   s    z_BaseVersion.__ne__c             C   s&   t  | t  s t S| |  j | j  S)N)
isinstancer%   NotImplementedr'   )r(   r.   methodr   r   r    r-   b   s    z_BaseVersion._compare)r!   r"   r#   r'   r)   r/   r0   r1   r2   r3   r4   r-   r   r   r   r    r%   C   s   r%   c               @   s   e  Z d  Z d d   Z d d   Z d d   Z e d d    Z e d	 d
    Z e d d    Z	 e d d    Z
 e d d    Z e d d    Z e d d    Z e d d    Z e d d    Z e d d    Z e d d    Z d S)r   c             C   s%   t  |  |  _ t |  j  |  _ d  S)N)str_version_legacy_cmpkeyr'   )r(   r   r   r   r    __init__k   s    zLegacyVersion.__init__c             C   s   |  j  S)N)r9   )r(   r   r   r    __str__p   s    zLegacyVersion.__str__c             C   s   d j  t t |     S)Nz<LegacyVersion({0})>)formatreprr8   )r(   r   r   r    __repr__t   s    zLegacyVersion.__repr__c             C   s   |  j  S)N)r9   )r(   r   r   r    publicx   s    zLegacyVersion.publicc             C   s   |  j  S)N)r9   )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_devreleaseN)r!   r"   r#   r;   r<   r?   propertyr@   rA   r   r   r   r   r   r   rC   rD   rE   r   r   r   r    r   j   s   z(\d+ | [a-z]+ | \.| -)cpreview-zfinal-rc@c             c   s{   xo t  j |   D]^ } t j | |  } | s | d k r> q | d  d  d k re | j d  Vq d | Vq Wd Vd  S)N.r   
0123456789   *z*final)_legacy_version_component_resplit_legacy_version_replacement_mapgetzfill)r*   partr   r   r    _parse_version_parts   s    rV   c             C   s   d } g  } x t  |  j    D]| } | j d  r | d k  rg x$ | rf | d d k rf | j   qC Wx$ | r | d d k r | j   qj W| j |  q W| t |  f S)	Nr   rO   z*finalz*final-00000000rB   rB   rB   )rV   lower
startswithpopappendtuple)r   r   partsrU   r   r   r    r:      s    r:   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               @   sT  e  Z d  Z e j d e d e j e j B Z d d   Z	 d d   Z
 d d   Z e d	 d
    Z e d d    Z e d d    Z e d d    Z e d d    Z e d d    Z e d d    Z e d d    Z e d d    Z e d d    Z e d d    Z e d d     Z e d! d"    Z e d# d$    Z d% S)&r   z^\s*z\s*$c             C   s[  |  j  j |  } | s- t d j |    t d | j d  rW t | j d   n d d t d d   | j d  j d  D  d t	 | j d	  | j d
   d t	 | j d  | j d  p | j d   d t	 | j d  | j d   d t
 | j d    |  _ t |  j j |  j j |  j j |  j j |  j j |  j j  |  _ d  S)NzInvalid version: '{0}'r   r   r   c             s   s   |  ] } t  |  Vq d  S)N)int).0ir   r   r    	<genexpr>  s    z#Version.__init__.<locals>.<genexpr>rL   r   pre_lpre_nr   post_lpost_n1post_n2r   dev_ldev_nr   )_regexsearchr   r=   r   groupr^   r\   rQ   _parse_letter_version_parse_local_versionr9   _cmpkeyr   r   r   r   r   r   r'   )r(   r   matchr   r   r    r;     s$    *+!-!					zVersion.__init__c             C   s   d j  t t |     S)Nz<Version({0})>)r=   r>   r8   )r(   r   r   r    r?   -  s    zVersion.__repr__c             C   s  g  } |  j  d k r. | j d j |  j    | j d j d d   |  j D   |  j d  k	 r | j d j d d   |  j D   |  j d  k	 r | j d j |  j   |  j d  k	 r | j d	 j |  j   |  j d  k	 r| j d
 j |  j   d j |  S)Nr   z{0}!rL   c             s   s   |  ] } t  |  Vq d  S)N)r8   )r_   xr   r   r    ra   :  s    z"Version.__str__.<locals>.<genexpr> c             s   s   |  ] } t  |  Vq d  S)N)r8   )r_   rp   r   r   r    ra   >  s    z.post{0}z.dev{0}z+{0})	r   r[   r=   joinr   r   r   r   r   )r(   r]   r   r   r    r<   1  s    &&zVersion.__str__c             C   s   |  j  j } | S)N)r9   r   )r(   Z_epochr   r   r    r   N  s    zVersion.epochc             C   s   |  j  j } | S)N)r9   r   )r(   _releaser   r   r    r   T  s    zVersion.releasec             C   s   |  j  j } | S)N)r9   r   )r(   _prer   r   r    r   Z  s    zVersion.prec             C   s   |  j  j r |  j  j d Sd  S)Nr   )r9   r   )r(   r   r   r    r   `  s    zVersion.postc             C   s   |  j  j r |  j  j d Sd  S)Nr   )r9   r   )r(   r   r   r    r   e  s    zVersion.devc             C   s4   |  j  j r, d j d d   |  j  j D  Sd  Sd  S)NrL   c             s   s   |  ] } t  |  Vq d  S)N)r8   )r_   rp   r   r   r    ra   n  s    z Version.local.<locals>.<genexpr>)r9   r   rr   )r(   r   r   r    r   j  s     zVersion.localc             C   s   t  |   j d d  d S)N+r   r   )r8   rQ   )r(   r   r   r    r@   r  s    zVersion.publicc             C   sa   g  } |  j  d k r. | j d j |  j    | j d j d d   |  j D   d j |  S)Nr   z{0}!rL   c             s   s   |  ] } t  |  Vq d  S)N)r8   )r_   rp   r   r   r    ra     s    z'Version.base_version.<locals>.<genexpr>rq   )r   r[   r=   rr   r   )r(   r]   r   r   r    rA   w  s
    &zVersion.base_versionc             C   s   |  j  d  k	 p |  j d  k	 S)N)r   r   )r(   r   r   r    rC     s    zVersion.is_prereleasec             C   s   |  j  d  k	 S)N)r   )r(   r   r   r    rD     s    zVersion.is_postreleasec             C   s   |  j  d  k	 S)N)r   )r(   r   r   r    rE     s    zVersion.is_devreleasec             C   s$   t  |  j  d k r  |  j d Sd S)Nr   r   )lenr   )r(   r   r   r    major  s    zVersion.majorc             C   s$   t  |  j  d k r  |  j d Sd S)N   r   r   )rv   r   )r(   r   r   r    minor  s    zVersion.minorc             C   s$   t  |  j  d k r  |  j d Sd S)N   rx   r   )rv   r   )r(   r   r   r    micro  s    zVersion.microN)r!   r"   r#   recompiler   VERBOSE
IGNORECASEri   r;   r?   r<   rF   r   r   r   r   r   r   r@   rA   rC   rD   rE   rw   ry   r{   r   r   r   r    r     s$   $c             C   s   |  r | d  k r d } |  j    }  |  d k r9 d }  n< |  d k rN d }  n' |  d k rc d	 }  n |  d k ru d }  |  t |  f S|  r | r d }  |  t |  f Sd  S)Nr   alphaabetabrG   r   rH   rJ   revrr   )rG   zprezpreview)zrevr   )rX   r^   )letternumberr   r   r    rl     s"    			rl   z[\._-]c             C   s0   |  d k	 r, t  d d   t j |   D  Sd S)zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Nc             s   s3   |  ]) } | j    s! | j   n	 t |  Vq d  S)N)isdigitrX   r^   )r_   rU   r   r   r    ra     s   z'_parse_local_version.<locals>.<genexpr>)r\   _local_version_separatorsrQ   )r   r   r   r    rm     s
    	rm   c             C   s   t  t t t j d d   t |      } | d  k r] | d  k r] | d  k	 r] t } n | d  k rr t } n | } | d  k r t } n | } | d  k r t }	 n | }	 | d  k r t }
 n t  d d   | D  }
 |  | | | |	 |
 f S)Nc             S   s
   |  d k S)Nr   r   )rp   r   r   r    r,     s    z_cmpkey.<locals>.<lambda>c             s   s6   |  ], } t  | t  r$ | d  f n	 t | f Vq d S)rq   N)r5   r^   r   )r_   r`   r   r   r    ra     s    z_cmpkey.<locals>.<genexpr>)r\   reversedlist	itertools	dropwhiler   r   )r   r   r   r   r   r   rs   rt   Z_postZ_dev_localr   r   r    rn     s$    -$						rn   )5
__future__r   r   r   collectionsr   r|   _structuresr   r   Z_typingr   Ztypingr	   r
   r   r   r   r   r   r   r   ZInfiniteTypesr8   r^   ZPrePostDevTypeZSubLocalTypeZ	LocalTypeZCmpKeyZLegacyCmpKeyboolZVersionComparisonMethod__all__
namedtupler   r   
ValueErrorr   objectr%   r   r}   r~   rP   rR   rV   r:   r   r   rl   r   rm   rn   r   r   r   r    <module>   sZ   4#''F;&