ó
^\kdc           @   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-386,
distribute-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__(    (    (    sB   /var/www/testScraper/venv/build/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(    (    sB   /var/www/testScraper/venv/build/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   (    (    sB   /var/www/testScraper/venv/build/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(    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   _check_compatible'   s    c         C   s   |  j  | ƒ |  j | j k S(   N(   R   R   (   R   R   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   __eq__+   s    c         C   s   |  j  | ƒ S(   N(   R   (   R   R   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   __ne__/   s    c         C   s   |  j  | ƒ |  j | j k  S(   N(   R   R   (   R   R   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   __lt__2   s    c         C   s   |  j  | ƒ p |  j | ƒ S(   N(   R    R   (   R   R   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   __gt__6   s    c         C   s   |  j  | ƒ p |  j | ƒ S(   N(   R    R   (   R   R   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   __le__9   s    c         C   s   |  j  | ƒ p |  j | ƒ S(   N(   R!   R   (   R   R   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   __ge__<   s    c         C   s   t  |  j ƒ S(   N(   t   hashR   (   R   (    (    sB   /var/www/testScraper/venv/build/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   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   __repr__C   s    c         C   s   |  j  S(   N(   R   (   R   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   __str__F   s    c         C   s   t  d ƒ ‚ d  S(   Ns   Please implement in subclasses.(   R   (   R   (    (    sB   /var/www/testScraper/venv/build/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)   (    (    (    sB   /var/www/testScraper/venv/build/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 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#   ^(<=|>=|<|>|!=|==|~=)?\s*([^\s,]+)$s   ^\d+(\.\d+)*$c         C   s
   |  | k  S(   N(    (   t   vt   ct   p(    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   <lambda>W   s    t   <c         C   s
   |  | k S(   N(    (   R,   R-   R.   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR/   X   s    t   >c         C   s   |  | k p |  | k  S(   N(    (   R,   R-   R.   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR/   Y   s    s   <=c         C   s   |  | k p |  | k S(   N(    (   R,   R-   R.   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR/   Z   s    s   >=c         C   s
   |  | k S(   N(    (   R,   R-   R.   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR/   [   s    s   ==c         C   s   |  | k p |  | k S(   N(    (   R,   R-   R.   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR/   ]   s    s   ~=c         C   s
   |  | k S(   N(    (   R,   R-   R.   (    (    sB   /var/www/testScraper/venv/build/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(    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR   a   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(    (    sB   /var/www/testScraper/venv/build/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   ==(   R5   R   R   (   R   t   result(    (    sB   /var/www/testScraper/venv/build/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   (    (    sB   /var/www/testScraper/venv/build/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   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR   ¦   s    c         C   s   |  j  | ƒ S(   N(   R   (   R   R   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR   ª   s    c         C   s   t  |  j ƒ t  |  j ƒ S(   N(   R$   R<   R   (   R   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR%   ®   s    c         C   s   d |  j  j |  j f S(   Ns   %s(%r)(   R&   R	   R   (   R   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR'   ±   s    c         C   s   |  j  S(   N(   R   (   R   (    (    sB   /var/www/testScraper/venv/build/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(   (    (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR+   N   s*   





	%						sV   ^(\d+\.\d+(\.\d+)*)((a|b|c|rc)(\d+))?(\.(post)(\d+))?(\.(dev)(\d+))?(-(\d+(\.\d+)?))?$c         C   sí  |  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 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 rid } n. t g  | j d ƒ D] }  t	 |  ƒ ^ q|ƒ } | s¼| r³| r³d } q¼d } n  | sËd } n  | sÚd } n  | | | | | f S(   Ns   Not a valid version: %sc         s   s   |  ] } t  | ƒ Vq d  S(   N(   t   int(   t   .0R,   (    (    sB   /var/www/testScraper/venv/build/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   PEP426_VERSION_RER8   R   R9   R   R=   R   R5   RV   (   R   RD   R9   t   numst   pret   postt   devt   local(    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   _pep426_key½   sB    #%
				.				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,   (    (    sB   /var/www/testScraper/venv/build/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   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR     s
    &RY   t   bR-   t   rcRa   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   (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pys	   <genexpr>  s    (   t   anyR   (   R   (    (   R   sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR)     s    (   R	   R
   R   R   t   setRh   R*   R)   (    (    (    sB   /var/www/testScraper/venv/build/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(    (    sB   /var/www/testScraper/venv/build/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 6Z 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_nes   !=c         C   sO   | | k r t  S| j } d j g  | D] } t | ƒ ^ q& ƒ } t | | ƒ S(   NRX   (   RB   Re   t   joinRl   Rq   (   R   RM   RO   RI   t   release_clauset   it   pfx(    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyRs   ,  s
    	(c         C   sO   | | k r t  S| j } d j g  | D] } t | ƒ ^ q& ƒ } t | | ƒ S(   NRX   (   RB   Re   Ry   Rl   Rq   (   R   RM   RO   RI   Rz   R{   R|   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyRt   3  s
    	(c         C   s
   | | k S(   N(    (   R   RM   RO   RI   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyRu   :  s    c         C   s
   | | k S(   N(    (   R   RM   RO   RI   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyRv   =  s    c         C   s(   | s | | k } n t  | | ƒ } | S(   N(   Rq   (   R   RM   RO   RI   RR   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyRw   @  s    c         C   s)   | s | | k } n t  | | ƒ } | S(   N(   Rq   (   R   RM   RO   RI   RR   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyRx   G  s    c         C   s}   | | k r t  S| | k  r  t S| j } t | ƒ d k rH | d  } n  d j g  | D] } t | ƒ ^ qU ƒ } t | | ƒ S(   Ni   iÿÿÿÿRX   (   R@   RB   Re   R   Ry   Rl   Rq   (   R   RM   RO   RI   Rz   R{   R|   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyRr   N  s    	((   R	   R
   R   R4   RJ   Rs   Rt   Ru   Rv   Rw   Rx   Rr   (    (    (    sB   /var/www/testScraper/venv/build/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   Ra   t   -t   +N(   R   R;   t   _REPLACEMENTSt   subt   _NUMERIC_PREFIXR8   R9   R=   RV   R   RC   t   endRy   Rl   t   _SUFFIX_REPLACEMENTSt	   is_semverR5   (	   R   RR   t   patt   replRD   RI   t   suffixR{   t   sep(    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   _suggest_semantic_versionr  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   -betaRf   R}   R~   Rg   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   -betaRf   (   s   alphaRY   (   s   betaRf   (   s   rcR-   (   s   -finalR2   (   s   -preR-   (   s   -releaseR2   (   s   .releaseR2   (   s   -stableR2   (   R€   RX   (   R[   RX   (   RŒ   R2   (   s   .finalR2   (   s   finalR2   N(   Rd   R   R;   t   replaceRT   R‚   Rm   R5   (   R   t   rst   origRˆ   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   _suggest_normalized_version   sH    
			
s   ([a-z]+|\d+|[\.-])R-   R_   t   previews   final-R   Rg   t   @Ra   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.   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt	   get_parts  s     
R—   s   *finaliÿÿÿÿs   *final-t   00000000(   Rm   t   popRC   R   (   R   R›   RR   R.   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   _legacy_key  s    	c        
   B   sG   e  Z d  „  Z e d d d d d d d d d	 g	 ƒ Z e d
 „  ƒ Z RS(   c         C   s
   t  | ƒ S(   N(   Rž   (   R   R   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR   9  s    s   *as   *alphas   *bs   *betas   *cs   *rcs   *rs   *@s   *prec            s   t  ‡  f d †  ˆ  j Dƒ ƒ S(   Nc         3   s   |  ] } | ˆ  j  k Vq d  S(   N(   Rh   (   RW   Rn   (   R   (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pys	   <genexpr>B  s    (   Rj   R   (   R   (    (   R   sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR)   @  s    (   R	   R
   R   Rk   Rh   R*   R)   (    (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR   8  s   	$c           B   s?   e  Z e Z e e j ƒ Z d  e d <e j d ƒ Z	 d „  Z
 RS(   Rr   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   Rl   t   loggert   warningR@   R9   t   rsplitRq   (   R   RM   RO   RI   RD   R   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyRr   M  s    	
(   R	   R
   R   R4   t   dictR+   RJ   RT   RU   RŸ   Rr   (    (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR   E  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   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR†   c  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   t   isdigitRš   (   R   t   absentRR   R   R.   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt
   make_tupleh  s
    :i   t   |i   R—   (   R†   R   R9   RV   (
   R   R§   RD   R9   R{   t   majort   minort   patchR_   t   build(    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   _semantic_keyg  s    	
,'c           B   s    e  Z d  „  Z e d „  ƒ Z RS(   c         C   s
   t  | ƒ S(   N(   R­   (   R   R   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR   }  s    c         C   s   |  j  d d d k S(   Ni   i    R¨   (   R   (   R   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR)   €  s    (   R	   R
   R   R*   R)   (    (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR   |  s   	c           B   s   e  Z e Z RS(    (   R	   R
   R   R4   (    (    (    sB   /var/www/testScraper/venv/build/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°   (    (    sB   /var/www/testScraper/venv/build/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   (    (    sB   /var/www/testScraper/venv/build/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   (    (    sB   /var/www/testScraper/venv/build/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   (    (    sB   /var/www/testScraper/venv/build/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   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   suggest¥  s    	N(   R	   R
   R5   R   R±   R²   R³   R´   (    (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR®   ‰  s
   			t
   normalizedc         C   s   | S(   N(    (   R   R   (    (    sB   /var/www/testScraper/venv/build/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:   (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyR   ·  s    ()   R   t   loggingRT   t   compatR    t   __all__t	   getLoggerR	   R    R6   R   t   objectR   R+   RU   R]   Rc   Rd   R   Rq   R   R�   R…   Rƒ   R‹   R’   t   IR˜   R5   R™   Rž   R   R   R¤   R†   R­   R   R   R®   R¹   R   (    (    (    sB   /var/www/testScraper/venv/build/pip/pip/_vendor/distlib/version.pyt   <module>	   s~   1j	/$	<	.	r
					#	
	