ó
^†êWc           @` sn  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 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 Z d e f d  „  ƒ  YZ d! „  Z e j d" ƒ Z d# „  Z d$ „  Z d S(%   i    (   t   absolute_importt   divisiont   print_functionNi   (   t   Infinityt   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(    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR      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__(    (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR   $   s   t   _BaseVersionc           B` sP   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(    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   __hash__,   s    c         C` s   |  j  | d „  ƒ S(   Nc         S` s
   |  | k  S(   N(    (   t   st   o(    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   <lambda>0   s    (   t   _compare(   R   t   other(    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   __lt__/   s    c         C` s   |  j  | d „  ƒ S(   Nc         S` s
   |  | k S(   N(    (   R   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR   3   s    (   R   (   R   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   __le__2   s    c         C` s   |  j  | d „  ƒ S(   Nc         S` s
   |  | k S(   N(    (   R   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR   6   s    (   R   (   R   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   __eq__5   s    c         C` s   |  j  | d „  ƒ S(   Nc         S` s
   |  | k S(   N(    (   R   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR   9   s    (   R   (   R   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   __ge__8   s    c         C` s   |  j  | d „  ƒ S(   Nc         S` s
   |  | k S(   N(    (   R   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR   <   s    (   R   (   R   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   __gt__;   s    c         C` s   |  j  | d „  ƒ S(   Nc         S` s
   |  | k S(   N(    (   R   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR   ?   s    (   R   (   R   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   __ne__>   s    c         C` s&   t  | t ƒ s t S| |  j | j ƒ S(   N(   t
   isinstanceR   t   NotImplementedR   (   R   R   t   method(    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR   A   s    (
   R   R   R   R   R   R    R!   R"   R#   R   (    (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR   *   s   							c           B` sn   e  Z d  „  Z d „  Z d „  Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z e d „  ƒ Z	 e d „  ƒ Z
 RS(   c         C` s%   t  | ƒ |  _ t |  j ƒ |  _ d  S(   N(   t   strt   _versiont   _legacy_cmpkeyR   (   R   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   __init__J   s    c         C` s   |  j  S(   N(   R(   (   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   __str__N   s    c         C` s   d j  t t |  ƒ ƒ ƒ S(   Ns   <LegacyVersion({0})>(   t   formatt   reprR'   (   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   __repr__Q   s    c         C` s   |  j  S(   N(   R(   (   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   publicT   s    c         C` s   |  j  S(   N(   R(   (   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   base_versionX   s    c         C` s   d  S(   N(   t   None(   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR   \   s    c         C` s   t  S(   N(   t   False(   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   is_prerelease`   s    c         C` s   t  S(   N(   R2   (   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   is_postreleased   s    (   R   R   R*   R+   R.   t   propertyR/   R0   R   R3   R4   (    (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR   H   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(   R   t   part(    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   _parse_version_partsr   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 Wt | ƒ } | | f S(   NiÿÿÿÿR=   s   *finals   *final-t   00000000(   RD   t   lowert
   startswitht   popt   appendt   tuple(   R   R
   t   partsRC   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR)   ƒ   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 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(    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pys	   <genexpr>Ï   s    R;   R   t   pre_lt   pre_nR   t   post_lt   post_n1t   post_n2R   t   dev_lt   dev_nR   (   t   _regext   searchR   R,   R	   t   groupRL   RJ   R?   t   _parse_letter_versiont   _parse_local_versionR(   t   _cmpkeyR
   R   R   R   R   R   R   (   R   R   t   match(    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR*   Æ   s.    *(!					c         C` s   d j  t t |  ƒ ƒ ƒ S(   Ns   <Version({0})>(   R,   R-   R'   (   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR.   é   s    c         C` sS  g  } |  j  j d k r7 | j d j |  j  j ƒ ƒ n  | j d j d „  |  j  j Dƒ ƒ ƒ |  j  j d  k	 r˜ | j d j d „  |  j  j Dƒ ƒ ƒ n  |  j  j d  k	 rÍ | j d j |  j  j d ƒ ƒ n  |  j  j	 d  k	 r| j d	 j |  j  j	 d ƒ ƒ n  |  j  j
 d  k	 rF| j d
 j d j d „  |  j  j
 Dƒ ƒ ƒ ƒ n  d j | ƒ S(   Ni    s   {0}!R;   c         s` s   |  ] } t  | ƒ Vq d  S(   N(   R'   (   RM   t   x(    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pys	   <genexpr>ô   s    t    c         s` s   |  ] } t  | ƒ Vq d  S(   N(   R'   (   RM   R]   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pys	   <genexpr>ø   s    s   .post{0}i   s   .dev{0}s   +{0}c         s` s   |  ] } t  | ƒ Vq d  S(   N(   R'   (   RM   R]   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pys	   <genexpr>  s    (   R(   R
   RI   R,   t   joinR   R   R1   R   R   R   (   R   RK   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR+   ì   s    &)##,c         C` s   t  |  ƒ j d d ƒ d S(   Nt   +i   i    (   R'   R?   (   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR/   
  s    c         C` sj   g  } |  j  j d k r7 | j d j |  j  j ƒ ƒ n  | j d j d „  |  j  j Dƒ ƒ ƒ d j | ƒ S(   Ni    s   {0}!R;   c         s` s   |  ] } t  | ƒ Vq d  S(   N(   R'   (   RM   R]   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pys	   <genexpr>  s    R^   (   R(   R
   RI   R,   R_   R   (   R   RK   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR0     s
    &c         C` s0   t  |  ƒ } d | k r, | j d d ƒ d Sd  S(   NR`   i   (   R'   R?   (   R   t   version_string(    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR     s    c         C` s   t  |  j j p |  j j ƒ S(   N(   t   boolR(   R   R   (   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR3   !  s    c         C` s   t  |  j j ƒ S(   N(   Rb   R(   R   (   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR4   %  s    (   R   R   t   ret   compileR   t   VERBOSEt
   IGNORECASERV   R*   R.   R+   R5   R/   R0   R   R3   R4   (    (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/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   bR6   R   R7   R9   t   revt   rR   (   R6   s   pres   preview(   s   revRl   (   R1   RF   RL   (   t   lettert   number(    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyRY   *  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   isdigitRF   RL   (   RM   RC   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pys	   <genexpr>R  s   N(   R1   RJ   t   _local_version_seperatorsR?   (   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyRZ   L  s    c         C` sÝ   t  t t t j d „  t | ƒ ƒ ƒ ƒ ƒ } | d  k r[ | d  k r[ | d  k	 r[ t } n | d  k rp 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    (    (   R]   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR   `  s    c         s` s7   |  ]- } t  | t ƒ r$ | d  f n
 t | f Vq d S(   R^   N(   R$   RL   R   (   RM   RN   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pys	   <genexpr>…  s   (   RJ   t   reversedt   listt	   itertoolst	   dropwhileR1   R   (   R
   R   R   R   R   R   (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyR[   W  s&    	$
	
	
	(   t
   __future__R    R   R   t   collectionsRs   Rc   t   _structuresR   t   __all__t
   namedtupleR	   R   t
   ValueErrorR   t   objectR   R   Rd   Re   R>   R@   RD   R)   R   R   RY   Rp   RZ   R[   (    (    (    sn   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/packaging/version.pyt   <module>   s0   	!&		9k		