ó
Ð²Ebc        	   @` 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 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  n  d	 d
 d d d g Z! e j" d d d d d d d g ƒ Z# d „  Z$ d e% f d „  ƒ  YZ& d e' f d „  ƒ  YZ( d e( f d „  ƒ  YZ) e j* d e j+ ƒ Z, i d d 6d d 6d d 6d d 6d  d 6Z- d! „  Z. d" „  Z/ d# Z0 d
 e( f d$ „  ƒ  YZ1 d% „  Z2 e j* d& ƒ Z3 d' „  Z4 d( „  Z5 d S()   i    (   t   absolute_importt   divisiont   print_functionNi   (   t   Infinityt   NegativeInfinity(   t   TYPE_CHECKING(   t   Callablet   Iteratort   Listt   Optionalt   SupportsIntt   Tuplet   Union(   t   InfinityTypet   NegativeInfinityType.t   parset   Versiont   LegacyVersiont   InvalidVersiont   VERSION_PATTERNt   _Versiont   epocht   releaset   devt   pret   postt   localc         C` s-   y t  |  ƒ SWn t k
 r( t |  ƒ SXd S(   sÑ   
    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   (   t   version(    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR   1   s    c           B` s   e  Z d  Z RS(   sF   
    An invalid version was found, users should refer to PEP 440.
    (   t   __name__t
   __module__t   __doc__(    (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR   >   s   t   _BaseVersionc           B` sM   e  Z d Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 RS(   c         C` s   t  |  j ƒ S(   N(   t   hasht   _key(   t   self(    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   __hash__G   s    c         C` s#   t  | t ƒ s t S|  j | j k  S(   N(   t
   isinstanceR   t   NotImplementedR!   (   R"   t   other(    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   __lt__N   s    c         C` s#   t  | t ƒ s t S|  j | j k S(   N(   R$   R   R%   R!   (   R"   R&   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   __le__U   s    c         C` s#   t  | t ƒ s t S|  j | j k S(   N(   R$   R   R%   R!   (   R"   R&   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   __eq__\   s    c         C` s#   t  | t ƒ s t S|  j | j k S(   N(   R$   R   R%   R!   (   R"   R&   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   __ge__c   s    c         C` s#   t  | t ƒ s t S|  j | j k S(   N(   R$   R   R%   R!   (   R"   R&   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   __gt__j   s    c         C` s#   t  | t ƒ s t S|  j | j k S(   N(   R$   R   R%   R!   (   R"   R&   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   __ne__q   s    N(   R   R   t   NoneR!   R#   R'   R(   R)   R*   R+   R,   (    (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR   D   s   						c           B` sÈ   e  Z d  „  Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z	 e d „  ƒ Z
 e d „  ƒ Z e d	 „  ƒ Z e d
 „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z RS(   c         C` s5   t  | ƒ |  _ t |  j ƒ |  _ t j d t ƒ d  S(   NsZ   Creating a LegacyVersion has been deprecated and will be removed in the next major release(   t   strt   _versiont   _legacy_cmpkeyR!   t   warningst   warnt   DeprecationWarning(   R"   R   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   __init__z   s
    c         C` s   |  j  S(   N(   R/   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   __str__…   s    c         C` s   d j  t t |  ƒ ƒ ƒ S(   Ns   <LegacyVersion({0})>(   t   formatt   reprR.   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   __repr__‰   s    c         C` s   |  j  S(   N(   R/   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   public   s    c         C` s   |  j  S(   N(   R/   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   base_version’   s    c         C` s   d S(   Niÿÿÿÿ(    (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR   —   s    c         C` s   d  S(   N(   R-   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR   œ   s    c         C` s   d  S(   N(   R-   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR   ¡   s    c         C` s   d  S(   N(   R-   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR   ¦   s    c         C` s   d  S(   N(   R-   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR   «   s    c         C` s   d  S(   N(   R-   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR   °   s    c         C` s   t  S(   N(   t   False(   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   is_prereleaseµ   s    c         C` s   t  S(   N(   R;   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   is_postreleaseº   s    c         C` s   t  S(   N(   R;   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   is_devrelease¿   s    (   R   R   R4   R5   R8   t   propertyR9   R:   R   R   R   R   R   R   R<   R=   R>   (    (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR   y   s   			s   (\d+ | [a-z]+ | \.| -)t   ct   previews   final-t   -t   rct   @c         c` sx   xl t  j |  ƒ D][ } t j | | ƒ } | s | d k rA q n  | d  d k rb | j d ƒ Vq d | Vq Wd Vd  S(   Nt   .i   t
   0123456789i   t   *s   *final(   t   _legacy_version_component_ret   splitt   _legacy_version_replacement_mapt   gett   zfill(   t   st   part(    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   _parse_version_partsÐ   s    c         C` sµ   d } g  } x– t  |  j ƒ  ƒ D]‚ } | j d ƒ r” | d k  rj x' | rf | d d k rf | j ƒ  qC Wn  x' | r | d d k r | j ƒ  qm Wn  | j | ƒ q W| t | ƒ f S(   NiÿÿÿÿRG   s   *finals   *final-t   00000000(   RO   t   lowert
   startswitht   popt   appendt   tuple(   R   R   t   partsRN   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR0   â   s    s—  
    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           B` s  e  Z e j d  e d e j e j Bƒ Z d „  Z d „  Z	 d „  Z
 e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d	 „  ƒ Z e d
 „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z RS(   s   ^\s*s   \s*$c         C` s[  |  j  j | ƒ } | s0 t d j | ƒ ƒ ‚ n  t d | j d ƒ rZ t | j d ƒ ƒ n d d t 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(   Ns   Invalid version: '{0}'R   i    R   c         s` s   |  ] } t  | ƒ Vq d  S(   N(   t   int(   t   .0t   i(    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pys	   <genexpr>/  s    RE   R   t   pre_lt   pre_nR   t   post_lt   post_n1t   post_n2R   t   dev_lt   dev_nR   (   t   _regext   searchR   R6   R   t   groupRW   RU   RI   t   _parse_letter_versiont   _parse_local_versionR/   t   _cmpkeyR   R   R   R   R   R   R!   (   R"   R   t   match(    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR4   $  s$    *(!-!					c         C` s   d j  t t |  ƒ ƒ ƒ S(   Ns   <Version({0})>(   R6   R7   R.   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR8   B  s    c         C` s  g  } |  j  d k r1 | j d j |  j  ƒ ƒ n  | j d j d „  |  j Dƒ ƒ ƒ |  j d  k	 r‰ | j d j d „  |  j Dƒ ƒ ƒ n  |  j d  k	 r´ | j d j |  j ƒ ƒ n  |  j d  k	 rß | j d j |  j ƒ ƒ n  |  j	 d  k	 r
| j d	 j |  j	 ƒ ƒ n  d j | ƒ S(
   Ni    s   {0}!RE   c         s` s   |  ] } t  | ƒ Vq d  S(   N(   R.   (   RX   t   x(    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pys	   <genexpr>O  s    t    c         s` s   |  ] } t  | ƒ Vq d  S(   N(   R.   (   RX   Rh   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pys	   <genexpr>S  s    s   .post{0}s   .dev{0}s   +{0}(
   R   RT   R6   t   joinR   R   R-   R   R   R   (   R"   RV   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR5   F  s    #&c         C` s   |  j  j } | S(   N(   R/   R   (   R"   t   _epoch(    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR   c  s    c         C` s   |  j  j } | S(   N(   R/   R   (   R"   t   _release(    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR   i  s    c         C` s   |  j  j } | S(   N(   R/   R   (   R"   t   _pre(    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR   o  s    c         C` s   |  j  j r |  j  j d Sd  S(   Ni   (   R/   R   R-   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR   u  s    c         C` s   |  j  j r |  j  j d Sd  S(   Ni   (   R/   R   R-   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR   z  s    c         C` s1   |  j  j r) d j d „  |  j  j Dƒ ƒ Sd  Sd  S(   NRE   c         s` s   |  ] } t  | ƒ Vq d  S(   N(   R.   (   RX   Rh   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pys	   <genexpr>ƒ  s    (   R/   R   Rj   R-   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR     s    c         C` s   t  |  ƒ j d d ƒ d S(   Nt   +i   i    (   R.   RI   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR9   ‡  s    c         C` sa   g  } |  j  d k r1 | j d j |  j  ƒ ƒ n  | j d j d „  |  j Dƒ ƒ ƒ d j | ƒ S(   Ni    s   {0}!RE   c         s` s   |  ] } t  | ƒ Vq d  S(   N(   R.   (   RX   Rh   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pys	   <genexpr>–  s    Ri   (   R   RT   R6   Rj   R   (   R"   RV   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR:   Œ  s
    #c         C` s   |  j  d  k	 p |  j d  k	 S(   N(   R   R-   R   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR<   š  s    c         C` s   |  j  d  k	 S(   N(   R   R-   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR=   Ÿ  s    c         C` s   |  j  d  k	 S(   N(   R   R-   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR>   ¤  s    c         C` s$   t  |  j ƒ d k r  |  j d Sd S(   Ni   i    (   t   lenR   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   major©  s    c         C` s$   t  |  j ƒ d k r  |  j d Sd S(   Ni   i   i    (   Ro   R   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   minor®  s    c         C` s$   t  |  j ƒ d k r  |  j d Sd S(   Ni   i   i    (   Ro   R   (   R"   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   micro³  s    (   R   R   t   ret   compileR   t   VERBOSEt
   IGNORECASERa   R4   R8   R5   R?   R   R   R   R   R   R   R9   R:   R<   R=   R>   Rp   Rq   Rr   (    (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyR      s$   $			c         C` s²   |  r‹ | d  k r d } n  |  j ƒ  }  |  d k r< d }  n? |  d k rQ d }  n* |  d k rf d	 }  n |  d k r{ d }  n  |  t | ƒ f S|  r® | r® d }  |  t | ƒ f Sd  S(   Ni    t   alphat   at   betat   bR@   R   RA   RC   t   revt   rR   (   R@   R   RA   (   R{   R|   (   R-   RQ   RW   (   t   lettert   number(    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyRd   ¹  s"    					s   [\._-]c         C` s-   |  d k	 r) t d „  t j |  ƒ Dƒ ƒ Sd S(   sR   
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    c         s` s3   |  ]) } | j  ƒ  s! | j ƒ  n	 t | ƒ Vq d  S(   N(   t   isdigitRQ   RW   (   RX   RN   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pys	   <genexpr>é  s   N(   R-   RU   t   _local_version_separatorsRI   (   R   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyRe   â  s
    c         C` sì   t  t t t j d „  t | ƒ ƒ ƒ ƒ ƒ } | d  k rZ | d  k rZ | d  k	 rZ t } n | d  k ro t } n | } | d  k rŠ t } n | } | d  k r¥ t }	 n | }	 | d  k rÀ t }
 n t  d „  | Dƒ ƒ }
 |  | | | |	 |
 f S(   Nc         S` s
   |  d k S(   Ni    (    (   Rh   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   <lambda>ÿ  Ri   c         s` s6   |  ], } t  | t ƒ r$ | d  f n	 t | f Vq d S(   Ri   N(   R$   RW   R   (   RX   RY   (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pys	   <genexpr>)  s    (   RU   t   reversedt   listt	   itertoolst	   dropwhileR-   R   R   (   R   R   R   R   R   R   Rl   Rm   t   _postt   _devt   _local(    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyRf   ï  s$    *$						(6   t
   __future__R    R   R   t   collectionsR„   Rs   R1   t   _structuresR   R   t   _typingR   t   typingR   R   R   R	   R
   R   R   R   R   t   InfiniteTypesR.   RW   t   PrePostDevTypet   SubLocalTypet	   LocalTypet   CmpKeyt   LegacyCmpKeyt   boolt   VersionComparisonMethodt   __all__t
   namedtupleR   R   t
   ValueErrorR   t   objectR   R   Rt   Ru   RH   RJ   RO   R0   R   R   Rd   R€   Re   Rf   (    (    (    s:   /tmp/pip-build-UPPWic/pip/pip/_vendor/packaging/version.pyt   <module>   s\   4#*	5L
		;™	&	