ó
^†êWc           @   sr  d  Z  d d l Z d d l Z d d l m Z d d d d d	 d
 d d g Z e j e ƒ Z d e	 f d „  ƒ  YZ
 d e f d „  ƒ  YZ d e f d „  ƒ  YZ e j d ƒ Z d „  Z e Z d e f d „  ƒ  YZ d „  Z d e f d „  ƒ  YZ e j d ƒ d f e j d ƒ d f e j d ƒ d f e j d ƒ d f e j d ƒ d f e j d  ƒ d f e j d! ƒ d" f e j d# ƒ d$ f e j d% ƒ d& f e j d' ƒ d( f f
 Z e j d) ƒ d f e j d* ƒ d f e j d+ ƒ d" f e j d! ƒ d" f e j d, ƒ d f f Z e j d- ƒ Z d. „  Z d/ „  Z e j d0 e j ƒ Z i d1 d2 6d1 d3 6d4 d5 6d1 d6 6d7 d8 6d d 6d d" 6Z d9 „  Z d e f d: „  ƒ  YZ d e f d; „  ƒ  YZ  e j d< e j ƒ Z! d= „  Z" d> „  Z# d	 e f d? „  ƒ  YZ$ d
 e f d@ „  ƒ  YZ% dA e f dB „  ƒ  YZ& i e& e e e ƒ dC 6e& e e  dD „  ƒ dE 6e& e# e% e ƒ dF 6Z' e' dC e' dG <dH „  Z( d S(I   s~   
Implementation of a flexible versioning scheme providing support for PEP-440,
setuptools-compatible and semantic versioning.
iÿÿÿÿNi   (   t   string_typest   NormalizedVersiont   NormalizedMatchert   LegacyVersiont   LegacyMatchert   SemanticVersiont   SemanticMatchert   UnsupportedVersionErrort
   get_schemec           B   s   e  Z d  Z RS(   s   This is an unsupported version.(   t   __name__t
   __module__t   __doc__(    (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR      s   t   Versionc           B   sƒ   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z e d „  ƒ Z RS(   c         C   sZ   | j  ƒ  |  _ } |  j | ƒ |  _ } t | t ƒ s> t ‚ t | ƒ d k sV t ‚ d  S(   Ni    (   t   stript   _stringt   parset   _partst
   isinstancet   tuplet   AssertionErrort   len(   t   selft   st   parts(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   __init__   s    c         C   s   t  d ƒ ‚ d  S(   Ns   please implement in a subclass(   t   NotImplementedError(   R   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR   $   s    c         C   s5   t  |  ƒ t  | ƒ k r1 t d |  | f ƒ ‚ n  d  S(   Ns   cannot compare %r and %r(   t   typet	   TypeError(   R   t   other(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   _check_compatible'   s    c         C   s   |  j  | ƒ |  j | j k S(   N(   R   R   (   R   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   __eq__+   s    c         C   s   |  j  | ƒ S(   N(   R   (   R   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   __ne__/   s    c         C   s   |  j  | ƒ |  j | j k  S(   N(   R   R   (   R   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   __lt__2   s    c         C   s   |  j  | ƒ p |  j | ƒ S(   N(   R    R   (   R   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   __gt__6   s    c         C   s   |  j  | ƒ p |  j | ƒ S(   N(   R    R   (   R   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   __le__9   s    c         C   s   |  j  | ƒ p |  j | ƒ S(   N(   R!   R   (   R   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   __ge__<   s    c         C   s   t  |  j ƒ S(   N(   t   hashR   (   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   __hash__@   s    c         C   s   d |  j  j |  j f S(   Ns   %s('%s')(   t	   __class__R	   R   (   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   __repr__C   s    c         C   s   |  j  S(   N(   R   (   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   __str__F   s    c         C   s   t  d ƒ ‚ d  S(   Ns   Please implement in subclasses.(   R   (   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   is_prereleaseI   s    (   R	   R
   R   R   R   R   R   R    R!   R"   R#   R%   R'   R(   t   propertyR)   (    (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR      s   												t   Matcherc           B   sè   e  Z d Z e j d  ƒ Z e j d ƒ Z e j d ƒ Z i d „  d 6d „  d 6d „  d 6d	 „  d
 6d „  d 6d „  d 6d „  d 6d „  d 6Z	 d „  Z
 d „  Z e d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s   ^(\w[\s\w'.-]*)(\((.*)\))?s'   ^(<=|>=|<|>|!=|={2,3}|~=)?\s*([^\s,]+)$s   ^\d+(\.\d+)*$c         C   s
   |  | k  S(   N(    (   t   vt   ct   p(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   <lambda>W   s    t   <c         C   s
   |  | k S(   N(    (   R,   R-   R.   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR/   X   s    t   >c         C   s   |  | k p |  | k  S(   N(    (   R,   R-   R.   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR/   Y   s    s   <=c         C   s   |  | k p |  | k S(   N(    (   R,   R-   R.   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR/   Z   s    s   >=c         C   s
   |  | k S(   N(    (   R,   R-   R.   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR/   [   s    s   ==c         C   s
   |  | k S(   N(    (   R,   R-   R.   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR/   \   s    s   ===c         C   s   |  | k p |  | k S(   N(    (   R,   R-   R.   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR/   ^   s    s   ~=c         C   s
   |  | k S(   N(    (   R,   R-   R.   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR/   _   s    s   !=c   
      C   sÚ  |  j  d  k r t d ƒ ‚ n  | j ƒ  |  _ } |  j j | ƒ } | s\ t d | ƒ ‚ n  | j d ƒ } | d j ƒ  |  _ |  j j	 ƒ  |  _
 g  } | d rÇg  | d j d ƒ D] } | j ƒ  ^ q´ } xø | D]í } |  j j | ƒ } | s
t d | | f ƒ ‚ n  | j ƒ  } | d p#d } | d	 } | j d
 ƒ r”| d k r^t d | ƒ ‚ n  | d  t } }	 |  j j | ƒ sª|  j  | ƒ qªn |  j  | ƒ t } }	 | j | | |	 f ƒ qÓ Wn  t | ƒ |  _ d  S(   Ns   Please specify a version classs   Not valid: %rt    i    i   t   ,s   Invalid %r in %rs   ~=i   s   .*s   ==s   !=s#   '.*' not allowed for %r constraintsiþÿÿÿ(   s   ==s   !=(   t   version_classt   Nonet
   ValueErrorR   R   t   dist_ret   matcht   groupst   namet   lowert   keyt   splitt   comp_ret   endswitht   Truet   num_ret   Falset   appendR   R   (
   R   R   t   mR9   t   clistR-   t   constraintst   opt   vnt   prefix(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR   b   s:    
,
c         C   s¶   t  | t ƒ r! |  j | ƒ } n  xŽ |  j D]ƒ \ } } } |  j j | ƒ } t  | t ƒ rm t |  | ƒ } n  | s˜ d | |  j j f } t	 | ƒ ‚ n  | | | | ƒ s+ t
 Sq+ Wt S(   sÊ   
        Check if the provided version matches the constraints.

        :param version: The version to match against this instance.
        :type version: Strring or :class:`Version` instance.
        s   %r not implemented for %s(   R   R    R4   R   t
   _operatorst   gett   getattrR&   R	   R   RB   R@   (   R   t   versiont   operatort
   constraintRI   t   ft   msg(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR8   ‡   s    c         C   sJ   d  } t |  j ƒ d k rF |  j d d d k rF |  j d d } n  | S(   Ni   i    s   ==s   ===(   s   ==s   ===(   R5   R   R   (   R   t   result(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   exact_versionœ   s    ,c         C   sG   t  |  ƒ t  | ƒ k s* |  j | j k rC t d |  | f ƒ ‚ n  d  S(   Ns   cannot compare %s and %s(   R   R:   R   (   R   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR   £   s    *c         C   s/   |  j  | ƒ |  j | j k o. |  j | j k S(   N(   R   R<   R   (   R   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR   §   s    c         C   s   |  j  | ƒ S(   N(   R   (   R   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR   «   s    c         C   s   t  |  j ƒ t  |  j ƒ S(   N(   R$   R<   R   (   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR%   ¯   s    c         C   s   d |  j  j |  j f S(   Ns   %s(%r)(   R&   R	   R   (   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR'   ²   s    c         C   s   |  j  S(   N(   R   (   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR(   µ   s    N(   R	   R
   R5   R4   t   ret   compileR7   R>   RA   RJ   R   R8   R*   RS   R   R   R   R%   R'   R(   (    (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR+   N   s,   






	%						sk   ^v?(\d+!)?(\d+(\.\d+)*)((a|b|c|rc)(\d+))?(\.(post)(\d+))?(\.(dev)(\d+))?(\+([a-zA-Z\d]+(\.[a-zA-Z\d]+)?))?$c         C   sK  |  j  ƒ  }  t j |  ƒ } | s4 t d |  ƒ ‚ n  | j ƒ  } t d „  | d j d ƒ Dƒ ƒ } x0 t | ƒ d k r• | d d k r• | d  } qf W| d s© d } n t | d ƒ } | d d !} | d	 d
 !} | d d !} | d } | d k rÿ d } n | d t | d ƒ f } | d k r.d } n | d t | d ƒ f } | d k r]d } n | d t | d ƒ f } | d  k rŒd } nf g  }	 xQ | j d ƒ D]@ }
 |
 j
 ƒ  rÉd t |
 ƒ f }
 n d |
 f }
 |	 j |
 ƒ q¢Wt |	 ƒ } | s| r| rd } qd } n  | s&d } n  | s5d } n  | | | | | | f S(   Ns   Not a valid version: %sc         s   s   |  ] } t  | ƒ Vq d  S(   N(   t   int(   t   .0R,   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pys	   <genexpr>Ä   s    i   t   .iÿÿÿÿi    i   i   i   i	   i
   i   i   t   at   zt   _t   final(   NN(    (   NN(    (   NN(    (    (   RY   iÿÿÿÿ(   RZ   (   R[   (   s   final(   R   t   PEP440_VERSION_RER8   R   R9   R   R=   R   RV   R5   t   isdigitRC   (   R   RD   R9   t   numst   epocht   pret   postt   devt   localR   t   part(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   _pep_440_key¾   sT    #%
	
								c           B   sA   e  Z d  Z d „  Z e d d d d d g ƒ Z e d „  ƒ Z RS(   sI  A rational version.

    Good:
        1.2         # equivalent to "1.2.0"
        1.2.0
        1.2a1
        1.2.3a2
        1.2.3b1
        1.2.3c1
        1.2.3.4
        TODO: fill this out

    Bad:
        1           # mininum two numbers
        1.2a        # release level must have a release serial
        1.2.3b
    c         C   sQ   t  | ƒ } t j | ƒ } | j ƒ  } t d „  | d j d ƒ Dƒ ƒ |  _ | S(   Nc         s   s   |  ] } t  | ƒ Vq d  S(   N(   RV   (   RW   R,   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pys	   <genexpr>  s    i   RX   (   t   _normalized_keyR]   R8   R9   R   R=   t   _release_clause(   R   R   RR   RD   R9   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR     s
    &RY   t   bR-   t   rcRc   c            s   t  ‡  f d †  ˆ  j Dƒ ƒ S(   Nc         3   s(   |  ] } | r | d  ˆ  j  k Vq d S(   i    N(   t   PREREL_TAGS(   RW   t   t(   R   (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pys	   <genexpr>  s    (   t   anyR   (   R   (    (   R   sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR)     s    (   R	   R
   R   R   t   setRk   R*   R)   (    (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR   þ   s   	c         C   sU   t  |  ƒ }  t  | ƒ } |  | k r( t S|  j | ƒ s; t St | ƒ } |  | d k S(   NRX   (   t   strR@   t
   startswithRB   R   (   t   xt   yt   n(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   _match_prefix"  s    c           B   s   e  Z e Z i d  d 6d d 6d d 6d d 6d d	 6d
 d 6d d 6d d 6Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d „  Z d „  Z RS(   t   _match_compatibles   ~=t	   _match_ltR0   t	   _match_gtR1   t	   _match_les   <=t	   _match_ges   >=t	   _match_eqs   ==t   _match_arbitrarys   ===t	   _match_nes   !=c         C   sx   | r" d | k o | j  d } n | j  d o: | j  d } | rn | j j d d ƒ d } |  j | ƒ } n  | | f S(   Nt   +iÿÿÿÿi   i    (   R   R   R=   R4   (   R   RM   RO   RI   t   strip_localR   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   _adjust_local<  s    c         C   sj   |  j  | | | ƒ \ } } | | k r+ t S| j } d j g  | D] } t | ƒ ^ qA ƒ } t | | ƒ S(   NRX   (   R   RB   Rh   t   joinRo   Rt   (   R   RM   RO   RI   t   release_clauset   it   pfx(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyRv   J  s    	(c         C   sj   |  j  | | | ƒ \ } } | | k r+ t S| j } d j g  | D] } t | ƒ ^ qA ƒ } t | | ƒ S(   NRX   (   R   RB   Rh   R€   Ro   Rt   (   R   RM   RO   RI   R   R‚   Rƒ   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyRw   R  s    	(c         C   s%   |  j  | | | ƒ \ } } | | k S(   N(   R   (   R   RM   RO   RI   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyRx   Z  s    c         C   s%   |  j  | | | ƒ \ } } | | k S(   N(   R   (   R   RM   RO   RI   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyRy   ^  s    c         C   sC   |  j  | | | ƒ \ } } | s0 | | k } n t | | ƒ } | S(   N(   R   Rt   (   R   RM   RO   RI   RR   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyRz   b  s
    c         C   s   t  | ƒ t  | ƒ k S(   N(   Ro   (   R   RM   RO   RI   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR{   j  s    c         C   sD   |  j  | | | ƒ \ } } | s0 | | k } n t | | ƒ } | S(   N(   R   Rt   (   R   RM   RO   RI   RR   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR|   m  s
    c         C   s˜   |  j  | | | ƒ \ } } | | k r+ t S| | k  r; t S| j } t | ƒ d k rc | d  } n  d j g  | D] } t | ƒ ^ qp ƒ } t | | ƒ S(   Ni   iÿÿÿÿRX   (   R   R@   RB   Rh   R   R€   Ro   Rt   (   R   RM   RO   RI   R   R‚   Rƒ   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyRu   u  s    	((   R	   R
   R   R4   RJ   R   Rv   Rw   Rx   Ry   Rz   R{   R|   Ru   (    (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR   -  s&   
								s   [.+-]$R2   s   ^[.](\d)s   0.\1s   ^[.-]s
   ^\((.*)\)$s   \1s   ^v(ersion)?\s*(\d+)s   \2s   ^r(ev)?\s*(\d+)s   [.]{2,}RX   s   \b(alfa|apha)\bt   alphas   \b(pre-alpha|prealpha)\bs	   pre.alphas	   \(beta\)$t   betas
   ^[:~._+-]+s
   [,*")([\]]s   [~:+_ -]s   \.$s   (\d+(\.\d+)*)c   	      C   sé  |  j  ƒ  j ƒ  } x& t D] \ } } | j | | ƒ } q W| sJ d } n  t j | ƒ } | sn d } | } nû | j ƒ  d j d ƒ } g  | D] } t | ƒ ^ qŽ } x# t	 | ƒ d k  rË | j
 d ƒ q© Wt	 | ƒ d k rñ | | j ƒ  } nD d j g  | d D] } t | ƒ ^ qƒ | | j ƒ  } | d  } d j g  | D] } t | ƒ ^ qBƒ } | j  ƒ  } | r›x) t D] \ } } | j | | ƒ } qvWn  | sª| } n& d | k r¼d n d } | | | } t | ƒ såd } n  | S(	   s€   
    Try to suggest a semantic form for a version for which
    _suggest_normalized_version couldn't come up with anything.
    s   0.0.0i    RX   i   Rc   t   -R}   N(   R   R;   t   _REPLACEMENTSt   subt   _NUMERIC_PREFIXR8   R9   R=   RV   R   RC   t   endR€   Ro   t   _SUFFIX_REPLACEMENTSt	   is_semverR5   (	   R   RR   t   patt   replRD   RI   t   suffixR‚   t   sep(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   _suggest_semantic_versionœ  s:    		:
(		c         C   s   y t  |  ƒ |  SWn t k
 r% n X|  j ƒ  } xS d2 d3 d4 d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ f D] \ } } | j | | ƒ } qf Wt j d d | ƒ } t j d d | ƒ } t j d d | ƒ } t j d d | ƒ } t j d d | ƒ } | j d ƒ r| d  } n  t j d! d | ƒ } t j d" d# | ƒ } t j d$ d% | ƒ } t j d& d | ƒ } t j d' d( | ƒ } t j d) d( | ƒ } t j d* d
 | ƒ } t j d+ d, | ƒ } t j d- d% | ƒ } t j d. d/ | ƒ } t j d0 d1 | ƒ } y t  | ƒ Wn t k
 rdA } n X| S(B   sè  Suggest a normalized version close to the given version string.

    If you have a version string that isn't rational (i.e. NormalizedVersion
    doesn't like it) then you might be able to get an equivalent (or close)
    rational version from this function.

    This does a number of simple normalizations to the given string, based
    on observation of versions currently in use on PyPI. Given a dump of
    those version during PyCon 2009, 4287 of them:
    - 2312 (53.93%) match NormalizedVersion without change
      with the automatic suggestion
    - 3474 (81.04%) match when using this suggestion method

    @param s {str} An irrational version string.
    @returns A rational version string, or None, if couldn't determine one.
    s   -alphaRY   s   -betaRi   R„   R…   Rj   R-   s   -finalR2   s   -pres   -releases   .releases   -stableR}   RX   R[   t    s   .finalR\   s   pre$t   pre0s   dev$t   dev0s   ([abc]|rc)[\-\.](\d+)$s   \1\2s   [\-\.](dev)[\-\.]?r?(\d+)$s   .\1\2s   [.~]?([abc])\.?s   \1R,   i   s   \b0+(\d+)(?!\d)s   (\d+[abc])$s   \g<1>0s   \.?(dev-r|dev\.r)\.?(\d+)$s   .dev\2s   -(a|b|c)(\d+)$s   [\.\-](dev|devel)$s   .dev0s   (?![\.\-])dev$s   (final|stable)$s   \.?(r|-|-r)\.?(\d+)$s   .post\2s   \.?(dev|git|bzr)\.?(\d+)$s   \.?(pre|preview|-c)(\d+)$s   c\g<2>s   p(\d+)$s   .post\1(   s   -alphaRY   (   s   -betaRi   (   s   alphaRY   (   s   betaRi   (   s   rcR-   (   s   -finalR2   (   s   -preR-   (   s   -releaseR2   (   s   .releaseR2   (   s   -stableR2   (   R}   RX   (   R[   RX   (   R’   R2   (   s   .finalR2   (   s   finalR2   N(   Rg   R   R;   t   replaceRT   Rˆ   Rp   R5   (   R   t   rst   origRŽ   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   _suggest_normalized_versionÊ  sH    
			
s   ([a-z]+|\d+|[\.-])R-   Ra   t   previews   final-R†   Rj   t   @Rc   c         C   s¬   d „  } g  } x | |  ƒ D]‚ } | j  d ƒ r‘ | d k  rg x' | rc | d d k rc | j ƒ  q@ Wn  x' | r | d d k r | j ƒ  qj Wn  | j | ƒ q Wt | ƒ S(   Nc         S   s›   g  } x t  j |  j ƒ  ƒ D]j } t j | | ƒ } | r d | d  k oU d k n rl | j d ƒ } n
 d | } | j | ƒ q q W| j d ƒ | S(   Nt   0i   t   9i   t   *s   *final(   t   _VERSION_PARTR=   R;   t   _VERSION_REPLACERK   t   zfillRC   (   R   RR   R.   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt	   get_partsI  s     
R   s   *finaliÿÿÿÿs   *final-t   00000000(   Rp   t   popRC   R   (   R   R¡   RR   R.   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   _legacy_keyH  s    	c           B   s    e  Z d  „  Z e d „  ƒ Z RS(   c         C   s
   t  | ƒ S(   N(   R¤   (   R   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR   c  s    c         C   sR   t  } xE |  j D]: } t | t ƒ r | j d ƒ r | d k  r t } Pq q W| S(   NR   s   *final(   RB   R   R   R    Rp   R@   (   R   RR   Rq   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR)   f  s    (   R	   R
   R   R*   R)   (    (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR   b  s   	c           B   s?   e  Z e Z e e j ƒ Z d  e d <e j d ƒ Z	 d „  Z
 RS(   Ru   s   ~=s   ^(\d+(\.\d+)*)c         C   s‡   | | k  r t  S|  j j t | ƒ ƒ } | sE t j d | | ƒ t S| j ƒ  d } d | k rz | j d d ƒ d } n  t	 | | ƒ S(   NsA   Cannot compute compatible match for version %s  and constraint %si    RX   i   (
   RB   t
   numeric_reR8   Ro   t   loggert   warningR@   R9   t   rsplitRt   (   R   RM   RO   RI   RD   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyRu   y  s    	
(   R	   R
   R   R4   t   dictR+   RJ   RT   RU   R¥   Ru   (    (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR   q  s
   
sN   ^(\d+)\.(\d+)\.(\d+)(-[a-z0-9]+(\.[a-z0-9-]+)*)?(\+[a-z0-9]+(\.[a-z0-9-]+)*)?$c         C   s   t  j |  ƒ S(   N(   t
   _SEMVER_RER8   (   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyRŒ     s    c   
      C   sŸ   d „  } t  |  ƒ } | s* t |  ƒ ‚ n  | j ƒ  } g  | d  D] } t | ƒ ^ qA \ } } } | | d d ƒ | | d d ƒ } }	 | | | f | |	 f S(   Nc         S   si   |  d  k r | f } nM |  d j d ƒ } t g  | D]' } | j ƒ  rV | j d ƒ n | ^ q5 ƒ } | S(   Ni   RX   i   (   R5   R=   R   R^   R    (   R   t   absentRR   R   R.   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt
   make_tuple”  s
    :i   t   |i   R   (   RŒ   R   R9   RV   (
   R   R¬   RD   R9   R‚   t   majort   minort   patchRa   t   build(    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   _semantic_key“  s    	
,'c           B   s    e  Z d  „  Z e d „  ƒ Z RS(   c         C   s
   t  | ƒ S(   N(   R²   (   R   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR   ©  s    c         C   s   |  j  d d d k S(   Ni   i    R­   (   R   (   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR)   ¬  s    (   R	   R
   R   R*   R)   (    (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR   ¨  s   	c           B   s   e  Z e Z RS(    (   R	   R
   R   R4   (    (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR   ±  s   t   VersionSchemec           B   s8   e  Z d d  „ Z d „  Z d „  Z d „  Z d „  Z RS(   c         C   s   | |  _  | |  _ | |  _ d  S(   N(   R<   t   matchert	   suggester(   R   R<   R´   Rµ   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR   ¶  s    		c         C   s8   y |  j  j | ƒ t } Wn t k
 r3 t } n X| S(   N(   R´   R4   R@   R   RB   (   R   R   RR   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   is_valid_version»  s    

c         C   s5   y |  j  | ƒ t } Wn t k
 r0 t } n X| S(   N(   R´   R@   R   RB   (   R   R   RR   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   is_valid_matcherÃ  s    

c         C   s   |  j  d | ƒ S(   s:   
        Used for processing some metadata fields
        s   dummy_name (%s)(   R·   (   R   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   is_valid_constraint_listË  s    c         C   s+   |  j  d  k r d  } n |  j  | ƒ } | S(   N(   Rµ   R5   (   R   R   RR   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   suggestÑ  s    	N(   R	   R
   R5   R   R¶   R·   R¸   R¹   (    (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR³   µ  s
   			t
   normalizedc         C   s   | S(   N(    (   R   R   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR/   Û  s    t   legacyt   semantict   defaultc         C   s'   |  t  k r t d |  ƒ ‚ n  t  |  S(   Ns   unknown scheme name: %r(   t   _SCHEMESR6   (   R:   (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyR   ã  s    ()   R   t   loggingRT   t   compatR    t   __all__t	   getLoggerR	   R¦   R6   R   t   objectR   R+   RU   R]   Rf   Rg   R   Rt   R   R‡   R‹   R‰   R‘   R˜   t   IRž   R5   RŸ   R¤   R   R   Rª   RŒ   R²   R   R   R³   R¾   R   (    (    (    sl   /private/var/folders/3n/6h2rwf155rn1m71wwyxn79n80000gn/T/pip-build-IcAT_k/pip/pip/_vendor/distlib/version.pyt   <module>	   s~   1k	=$	W	.	r
					#	
	