<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
ž
7’ReÔY  c               @   s  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 Gd d „  d e	 ƒ Z
 Gd d „  d e ƒ Z Gd d „  d e ƒ Z e j d ƒ Z d d „  Z e Z Gd d „  d e ƒ Z d d „  Z Gd d „  d e ƒ 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 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 d0 d1 „  Z d2 d3 „  Z e j d4 e j ƒ Z i d5 d6 6d5 d7 6d8 d9 6d5 d: 6d; d< 6d d 6d d$ 6Z d= d> „  Z Gd? d „  d e ƒ Z Gd@ d „  d e ƒ Z  e j dA e j ƒ Z! dB dC „  Z" dD dE „  Z# GdF d	 „  d	 e ƒ Z$ GdG d
 „  d
 e ƒ Z% GdH dI „  dI e ƒ Z& i e& e e e ƒ dJ 6e& e e  dK dL „  ƒ dM 6e& e# e% e ƒ dN 6Z' e' dJ e' dO <dP d „  Z( d S(Q   u~   
Implementation of a flexible versioning scheme providing support for PEP-386,
distribute-compatible and semantic versioning.
i    Ni   (   u   string_typesu   NormalizedVersionu   NormalizedMatcheru   LegacyVersionu   LegacyMatcheru   SemanticVersionu   SemanticMatcheru   UnsupportedVersionErroru
   get_schemec             B   s   |  Ee  Z d  Z d Z d S(   u   UnsupportedVersionErroru   This is an unsupported version.N(   u   __name__u
   __module__u   __qualname__u   __doc__(   u
   __locals__(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   UnsupportedVersionError   s   c             B   s¶   |  Ee  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 d „  Z d d „  Z d d „  Z d d „  Z e d d „  ƒ Z d S(   u   Versionc             C   sZ   | j  ƒ  |  _ } |  j | ƒ |  _ } t | t ƒ s> t ‚ t | ƒ d k sV t ‚ d  S(   Ni    (   u   stripu   _stringu   parseu   _partsu
   isinstanceu   tupleu   AssertionErroru   len(   u   selfu   su   parts(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __init__   s    u   Version.__init__c             C   s   t  d ƒ ‚ d  S(   Nu   please implement in a subclass(   u   NotImplementedError(   u   selfu   s(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   parse$   s    u   Version.parsec             C   s5   t  |  ƒ t  | ƒ k r1 t d |  | f ƒ ‚ n  d  S(   Nu   cannot compare %r and %r(   u   typeu	   TypeError(   u   selfu   other(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   _check_compatible'   s    u   Version._check_compatiblec             C   s   |  j  | ƒ |  j | j k S(   N(   u   _check_compatibleu   _parts(   u   selfu   other(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __eq__+   s    u   Version.__eq__c             C   s   |  j  | ƒ S(   N(   u   __eq__(   u   selfu   other(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __ne__/   s    u   Version.__ne__c             C   s   |  j  | ƒ |  j | j k  S(   N(   u   _check_compatibleu   _parts(   u   selfu   other(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __lt__2   s    u   Version.__lt__c             C   s   |  j  | ƒ p |  j | ƒ S(   N(   u   __lt__u   __eq__(   u   selfu   other(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __gt__6   s    u   Version.__gt__c             C   s   |  j  | ƒ p |  j | ƒ S(   N(   u   __lt__u   __eq__(   u   selfu   other(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __le__9   s    u   Version.__le__c             C   s   |  j  | ƒ p |  j | ƒ S(   N(   u   __gt__u   __eq__(   u   selfu   other(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __ge__<   s    u   Version.__ge__c             C   s   t  |  j ƒ S(   N(   u   hashu   _parts(   u   self(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __hash__@   s    u   Version.__hash__c             C   s   d |  j  j |  j f S(   Nu   %s('%s')(   u	   __class__u   __name__u   _string(   u   self(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __repr__C   s    u   Version.__repr__c             C   s   |  j  S(   N(   u   _string(   u   self(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __str__F   s    u   Version.__str__c             C   s   t  d ƒ ‚ d  S(   Nu   Please implement in subclasses.(   u   NotImplementedError(   u   self(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   is_prereleaseI   s    u   Version.is_prereleaseN(   u   __name__u
   __module__u   __qualname__u   __init__u   parseu   _check_compatibleu   __eq__u   __ne__u   __lt__u   __gt__u   __le__u   __ge__u   __hash__u   __repr__u   __str__u   propertyu   is_prerelease(   u
   __locals__(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   Version   s   u   Versionc             B   s  |  Ee  Z d  Z d% Z e j d ƒ Z e j d ƒ Z e j d ƒ Z	 i d d „  d 6d d „  d 6d	 d „  d
 6d d „  d 6d d „  d 6d d „  d 6d d „  d 6Z
 d d „  Z d d „  Z e d d „  ƒ Z d d „  Z d d „  Z d d „  Z d d  „  Z d! d" „  Z d# d$ „  Z d% S(&   u   Matcheru   ^(\w[\s\w'.-]*)(\((.*)\))?u#   ^(<=|>=|<|>|!=|==|~=)?\s*([^\s,]+)$u   ^\d+(\.\d+)*$c             C   s
   |  | k  S(   N(    (   u   vu   cu   p(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   <lambda>W   s    u   Matcher.<lambda>u   <c             C   s
   |  | k S(   N(    (   u   vu   cu   p(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   <lambda>X   s    u   >c             C   s   |  | k p |  | k  S(   N(    (   u   vu   cu   p(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   <lambda>Y   s    u   <=c             C   s   |  | k p |  | k S(   N(    (   u   vu   cu   p(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   <lambda>Z   s    u   >=c             C   s
   |  | k S(   N(    (   u   vu   cu   p(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   <lambda>[   s    u   ==c             C   s   |  | k p |  | k S(   N(    (   u   vu   cu   p(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   <lambda>]   s    u   ~=c             C   s
   |  | k S(   N(    (   u   vu   cu   p(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   <lambda>^   s    u   !=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Ád d „  | d j d ƒ Dƒ } xþ | D]ó } |  j j | ƒ } | sþ t d	 | | f ƒ ‚ n  | j ƒ  } | d pd
 } | d } | j d ƒ rŽ| d k rRt d | ƒ ‚ n  | d  d … d } }	 |  j j | ƒ s¤|  j  | ƒ q¤n |  j  | ƒ d } }	 | j | | |	 f ƒ qÇ Wn  t | ƒ |  _ d  S(   Nu   Please specify a version classu   Not valid: %ru    i    i   c             S   s   g  |  ] } | j  ƒ  ‘ q S(    (   u   strip(   u   .0u   c(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu
   <listcomp>m   s   	 u$   Matcher.__init__.<locals>.<listcomp>u   ,u   Invalid %r in %ru   ~=i   u   .*u   ==u   !=u#   '.*' not allowed for %r constraints(   u   ==u   !=iþÿÿÿTF(   u   version_classu   Noneu
   ValueErroru   stripu   _stringu   dist_reu   matchu   groupsu   nameu   loweru   keyu   splitu   comp_reu   endswithu   Trueu   num_reu   Falseu   appendu   tupleu   _parts(
   u   selfu   su   mu   groupsu   clistu   constraintsu   cu   opu   vnu   prefix(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __init__a   s:    
 
u   Matcher.__init__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+ d Sq+ Wd S(   uÊ   
        Check if the provided version matches the constraints.

        :param version: The version to match against this instance.
        :type version: Strring or :class:`Version` instance.
        u   %r not implemented for %sFT(   u
   isinstanceu   string_typesu   version_classu   _partsu
   _operatorsu   getu   getattru	   __class__u   __name__u   NotImplementedErroru   Falseu   True(   u   selfu   versionu   operatoru
   constraintu   prefixu   fu   msg(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   match†   s    u   Matcher.matchc             C   sJ   d  } t |  j ƒ d k rF |  j d d d k rF |  j d d } n  | S(   Ni   i    u   ==(   u   Noneu   lenu   _parts(   u   selfu   result(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   exact_version›   s    ,u   Matcher.exact_versionc             C   sG   t  |  ƒ t  | ƒ k s* |  j | j k rC t d |  | f ƒ ‚ n  d  S(   Nu   cannot compare %s and %s(   u   typeu   nameu	   TypeError(   u   selfu   other(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   _check_compatible¢   s    *u   Matcher._check_compatiblec             C   s/   |  j  | ƒ |  j | j k o. |  j | j k S(   N(   u   _check_compatibleu   keyu   _parts(   u   selfu   other(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __eq__¦   s    u   Matcher.__eq__c             C   s   |  j  | ƒ S(   N(   u   __eq__(   u   selfu   other(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __ne__ª   s    u   Matcher.__ne__c             C   s   t  |  j ƒ t  |  j ƒ S(   N(   u   hashu   keyu   _parts(   u   self(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __hash__®   s    u   Matcher.__hash__c             C   s   d |  j  j |  j f S(   Nu   %s(%r)(   u	   __class__u   __name__u   _string(   u   self(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __repr__±   s    u   Matcher.__repr__c             C   s   |  j  S(   N(   u   _string(   u   self(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __str__´   s    u   Matcher.__str__N(   u   __name__u
   __module__u   __qualname__u   Noneu   version_classu   reu   compileu   dist_reu   comp_reu   num_reu
   _operatorsu   __init__u   matchu   propertyu   exact_versionu   _check_compatibleu   __eq__u   __ne__u   __hash__u   __repr__u   __str__(   u
   __locals__(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   MatcherN   s*   %u   MatcheruQ   ^(\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 „  | d j d ƒ Dƒ ƒ } x6 t | ƒ d k rž | d d k rž | d  d … } qi W| d d … } | d	 d
 … } | d d … } | d } | d k rî f  } n | d t	 | d ƒ f } | d k rf  } n | d t	 | d ƒ f } | d k rLf  } n | d t	 | d ƒ f } | d  k r{f  } n" t d d „  | j d ƒ Dƒ ƒ } | sÂ| r¹| r¹d } qÂd } n  | sÑd } n  | sàd } n  | | | | | f S(   Nu   Not a valid version: %sc             s   s   |  ] } t  | ƒ Vq d  S(   N(   u   int(   u   .0u   v(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu	   <genexpr>Ã   s    u   _pep426_key.<locals>.<genexpr>i    u   .i   i   i   i   i   i	   i   i   c             S   s   g  |  ] } t  | ƒ ‘ q S(    (   u   int(   u   .0u   s(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu
   <listcomp>Ú   s   	 u   _pep426_key.<locals>.<listcomp>u   au   zu   _u   finaliÿÿÿÿiÿÿÿÿ(   NN(   NN(   NNiÿÿÿÿ(   u   aiÿÿÿÿ(   u   z(   u   _(   u   final(
   u   stripu   PEP426_VERSION_REu   matchu   UnsupportedVersionErroru   groupsu   tupleu   splitu   lenu   Noneu   int(   u   su   mu   groupsu   numsu   preu   postu   devu   local(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   _pep426_key½   sB    &%
				"				u   _pep426_keyc             B   sS   |  Ee  Z d  Z d Z d d „  Z e d d d d d g ƒ Z e d	 d
 „  ƒ Z d S(   u   NormalizedVersionuI  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   sT   t  | ƒ } t j | ƒ } | j ƒ  } t d d „  | d j d ƒ Dƒ ƒ |  _ | S(   Nc             s   s   |  ] } t  | ƒ Vq d  S(   N(   u   int(   u   .0u   v(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu	   <genexpr>	  s    u*   NormalizedVersion.parse.<locals>.<genexpr>i    u   .(   u   _normalized_keyu   PEP426_VERSION_REu   matchu   groupsu   tupleu   splitu   _release_clause(   u   selfu   su   resultu   mu   groups(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   parse  s
    )u   NormalizedVersion.parseu   au   bu   cu   rcu   devc                s    t  ‡  f d d †  ˆ  j Dƒ ƒ S(   Nc             3   s(   |  ] } | r | d  ˆ  j  k Vq d S(   i    N(   u   PREREL_TAGS(   u   .0u   t(   u   self(    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu	   <genexpr>  s    u2   NormalizedVersion.is_prerelease.<locals>.<genexpr>(   u   anyu   _parts(   u   self(    (   u   selfu4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   is_prerelease  s    u   NormalizedVersion.is_prereleaseN(	   u   __name__u
   __module__u   __qualname__u   __doc__u   parseu   setu   PREREL_TAGSu   propertyu   is_prerelease(   u
   __locals__(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   NormalizedVersionï   s   c             C   sU   t  |  ƒ }  t  | ƒ } |  | k r( d S|  j | ƒ s; d St | ƒ } |  | d k S(   Nu   .TF(   u   stru   Trueu
   startswithu   Falseu   len(   u   xu   yu   n(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   _match_prefix  s    u   _match_prefixc             B   s±   |  Ee  Z d  Z e Z i d d 6d d 6d d 6d d 6d	 d
 6d d 6d d 6Z 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(    u   NormalizedMatcheru   _match_compatibleu   ~=u	   _match_ltu   <u	   _match_gtu   >u	   _match_leu   <=u	   _match_geu   >=u	   _match_equ   ==u	   _match_neu   !=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(   Nu   -i   i    iÿÿÿÿiÿÿÿÿiÿÿÿÿ(   u   _partsu   _stringu   splitu   version_class(   u   selfu   versionu
   constraintu   prefixu   strip_localu   s(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   _adjust_local,  s    u   NormalizedMatcher._adjust_localc             C   s^   |  j  | | | ƒ \ } } | | k r+ d S| j } d j d d „  | Dƒ ƒ } t | | ƒ S(   Nu   .c             S   s   g  |  ] } t  | ƒ ‘ q S(    (   u   str(   u   .0u   i(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu
   <listcomp>?  s   	 u/   NormalizedMatcher._match_lt.<locals>.<listcomp>F(   u   _adjust_localu   Falseu   _release_clauseu   joinu   _match_prefix(   u   selfu   versionu
   constraintu   prefixu   release_clauseu   pfx(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu	   _match_lt:  s    	u   NormalizedMatcher._match_ltc             C   s^   |  j  | | | ƒ \ } } | | k r+ d S| j } d j d d „  | Dƒ ƒ } t | | ƒ S(   Nu   .c             S   s   g  |  ] } t  | ƒ ‘ q S(    (   u   str(   u   .0u   i(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu
   <listcomp>G  s   	 u/   NormalizedMatcher._match_gt.<locals>.<listcomp>F(   u   _adjust_localu   Falseu   _release_clauseu   joinu   _match_prefix(   u   selfu   versionu
   constraintu   prefixu   release_clauseu   pfx(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu	   _match_gtB  s    	u   NormalizedMatcher._match_gtc             C   s%   |  j  | | | ƒ \ } } | | k S(   N(   u   _adjust_local(   u   selfu   versionu
   constraintu   prefix(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu	   _match_leJ  s    u   NormalizedMatcher._match_lec             C   s%   |  j  | | | ƒ \ } } | | k S(   N(   u   _adjust_local(   u   selfu   versionu
   constraintu   prefix(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu	   _match_geN  s    u   NormalizedMatcher._match_gec             C   sC   |  j  | | | ƒ \ } } | s0 | | k } n t | | ƒ } | S(   N(   u   _adjust_localu   _match_prefix(   u   selfu   versionu
   constraintu   prefixu   result(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu	   _match_eqR  s
    u   NormalizedMatcher._match_eqc             C   sD   |  j  | | | ƒ \ } } | s0 | | k } n t | | ƒ } | S(   N(   u   _adjust_localu   _match_prefix(   u   selfu   versionu
   constraintu   prefixu   result(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu	   _match_neZ  s
    u   NormalizedMatcher._match_nec             C   s’   |  j  | | | ƒ \ } } | | k r+ d S| | k  r; d S| j } t | ƒ d k ri | d  d … } n  d j d d „  | Dƒ ƒ } t | | ƒ S(   Ni   u   .c             S   s   g  |  ] } t  | ƒ ‘ q S(    (   u   str(   u   .0u   i(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu
   <listcomp>k  s   	 u7   NormalizedMatcher._match_compatible.<locals>.<listcomp>TFiÿÿÿÿ(   u   _adjust_localu   Trueu   Falseu   _release_clauseu   lenu   joinu   _match_prefix(   u   selfu   versionu
   constraintu   prefixu   release_clauseu   pfx(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   _match_compatibleb  s    	u#   NormalizedMatcher._match_compatibleN(   u   __name__u
   __module__u   __qualname__u   NormalizedVersionu   version_classu
   _operatorsu   _adjust_localu	   _match_ltu	   _match_gtu	   _match_leu	   _match_geu	   _match_equ	   _match_neu   _match_compatible(   u
   __locals__(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   NormalizedMatcher  s"   
u   [.+-]$u    u   ^[.](\d)u   0.\1u   ^[.-]u
   ^\((.*)\)$u   \1u   ^v(ersion)?\s*(\d+)u   \2u   ^r(ev)?\s*(\d+)u   [.]{2,}u   .u   \b(alfa|apha)\bu   alphau   \b(pre-alpha|prealpha)\bu	   pre.alphau	   \(beta\)$u   betau
   ^[:~._+-]+u
   [,*")([\]]u   [~:+_ -]u   \.$u   (\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 ƒ } d d „  | Dƒ } x# t | ƒ d k  r¿ | j	 d ƒ q Wt | ƒ d k rë | | j
 ƒ  d … } nJ d j d d „  | d d … Dƒ ƒ | | j
 ƒ  d … } | d d … } d j d	 d „  | Dƒ ƒ } | j  ƒ  } | rx) t D] \ } } | j | | ƒ } qjWn  | sž| } n& d
 | k r°d n d } | | | } t | ƒ sÙd } n  | S(   u€   
    Try to suggest a semantic form for a version for which
    _suggest_normalized_version couldn't come up with anything.
    u   0.0.0i    u   .c             S   s   g  |  ] } t  | ƒ ‘ q S(    (   u   int(   u   .0u   i(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu
   <listcomp>›  s   	 u-   _suggest_semantic_version.<locals>.<listcomp>i   Nc             S   s   g  |  ] } t  | ƒ ‘ q S(    (   u   str(   u   .0u   i(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu
   <listcomp>¡  s   	 c             S   s   g  |  ] } t  | ƒ ‘ q S(    (   u   str(   u   .0u   i(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu
   <listcomp>£  s   	 u   devu   -u   +(   u   stripu   loweru   _REPLACEMENTSu   subu   _NUMERIC_PREFIXu   matchu   groupsu   splitu   lenu   appendu   endu   joinu   _SUFFIX_REPLACEMENTSu	   is_semveru   None(   u   su   resultu   patu   replu   mu   prefixu   suffixu   sep(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   _suggest_semantic_version‡  s:    		:		u   _suggest_semantic_versionc             C   sû  y t  |  ƒ |  SWn t k
 r& Yn X|  j ƒ  } x& dB D] \ } } | j | | ƒ } q: Wt j d d | ƒ } t j d d | ƒ } t j d d | ƒ } t j d d | ƒ } t j d d | ƒ } | j d ƒ rç | d  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/ d0 | ƒ } t j d1 d2 | ƒ } y t  | ƒ Wn t k
 röd! } Yn X| S(C   uè  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.
    u   -alphau   au   -betau   bu   alphau   betau   rcu   cu   -finalu    u   -preu   -releaseu   .releaseu   -stableu   +u   .u   _u    u   .finalu   finalu   pre$u   pre0u   dev$u   dev0u   ([abc]|rc)[\-\.](\d+)$u   \1\2u   [\-\.](dev)[\-\.]?r?(\d+)$u   .\1\2u   [.~]?([abc])\.?u   \1u   vi   Nu   \b0+(\d+)(?!\d)u   (\d+[abc])$u   \g<1>0u   \.?(dev-r|dev\.r)\.?(\d+)$u   .dev\2u   -(a|b|c)(\d+)$u   [\.\-](dev|devel)$u   .dev0u   (?![\.\-])dev$u   (final|stable)$u   \.?(r|-|-r)\.?(\d+)$u   .post\2u   \.?(dev|git|bzr)\.?(\d+)$u   \.?(pre|preview|-c)(\d+)$u   c\g<2>u   p(\d+)$u   .post\1(   u   -alphau   a(   u   -betau   b(   u   alphau   a(   u   betau   b(   u   rcu   c(   u   -finalu    (   u   -preu   c(   u   -releaseu    (   u   .releaseu    (   u   -stableu    (   u   +u   .(   u   _u   .(   u    u    (   u   .finalu    (   u   finalu    (   (   u   -alphau   a(   u   -betau   b(   u   alphau   a(   u   betau   b(   u   rcu   c(   u   -finalu    (   u   -preu   c(   u   -releaseu    (   u   .releaseu    (   u   -stableu    (   u   +u   .(   u   _u   .(   u    u    (   u   .finalu    (   u   finalu    (   u   _normalized_keyu   UnsupportedVersionErroru   loweru   replaceu   reu   subu
   startswithu   None(   u   su   rsu   origu   repl(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   _suggest_normalized_versionµ  sH    
    	u   _suggest_normalized_versionu   ([a-z]+|\d+|[\.-])u   cu   preu   previewu   final-u   -u   rcu   @u   devc             C   s¯   d d „  } g  } x | |  ƒ 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 | ƒ S(
   Nc             S   s¡   g  } x‡ t  j |  j ƒ  ƒ D]p } t j | | ƒ } | r d | d  d … k o[ d k n rr | j d ƒ } n
 d | } | j | ƒ q q W| j d ƒ | S(   Nu   0i   u   9i   u   *u   *final(   u   _VERSION_PARTu   splitu   loweru   _VERSION_REPLACEu   getu   zfillu   append(   u   su   resultu   p(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu	   get_parts4  s    &
u   _legacy_key.<locals>.get_partsu   *u   *finali   u   *final-u   00000000iÿÿÿÿiÿÿÿÿ(   u
   startswithu   popu   appendu   tuple(   u   su	   get_partsu   resultu   p(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   _legacy_key3  s    u   _legacy_keyc             B   s2   |  Ee  Z d  Z d d „  Z e d d „  ƒ Z d S(   u   LegacyVersionc             C   s
   t  | ƒ S(   N(   u   _legacy_key(   u   selfu   s(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   parseN  s    u   LegacyVersion.parsec             C   sR   d } xE |  j D]: } t | t ƒ r | j d ƒ r | d k  r d } Pq q W| S(   Nu   *u   *finalFT(   u   Falseu   _partsu
   isinstanceu   string_typesu
   startswithu   True(   u   selfu   resultu   x(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   is_prereleaseQ  s    u   LegacyVersion.is_prereleaseN(   u   __name__u
   __module__u   __qualname__u   parseu   propertyu   is_prerelease(   u
   __locals__(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   LegacyVersionM  s   c             B   sN   |  Ee  Z d  Z e Z e e j ƒ Z d e d <e j	 d ƒ Z
 d d „  Z d S(   u   LegacyMatcheru   _match_compatibleu   ~=u   ^(\d+(\.\d+)*)c             C   s‡   | | k  r d S|  j j t | ƒ ƒ } | sE t j d | | ƒ d S| j ƒ  d } d | k rz | j d d ƒ d } n  t	 | | ƒ S(   NuA   Cannot compute compatible match for version %s  and constraint %si    u   .i   FT(
   u   Falseu
   numeric_reu   matchu   stru   loggeru   warningu   Trueu   groupsu   rsplitu   _match_prefix(   u   selfu   versionu
   constraintu   prefixu   mu   s(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   _match_compatibled  s    	
u   LegacyMatcher._match_compatibleN(   u   __name__u
   __module__u   __qualname__u   LegacyVersionu   version_classu   dictu   Matcheru
   _operatorsu   reu   compileu
   numeric_reu   _match_compatible(   u
   __locals__(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   LegacyMatcher\  s
   
uN   ^(\d+)\.(\d+)\.(\d+)(-[a-z0-9]+(\.[a-z0-9-]+)*)?(\+[a-z0-9]+(\.[a-z0-9-]+)*)?$c             C   s   t  j |  ƒ S(   N(   u
   _SEMVER_REu   match(   u   s(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu	   is_semverz  s    u	   is_semverc       	      C   sœ   d d „  } t  |  ƒ } | s- t |  ƒ ‚ n  | j ƒ  } d d „  | d  d … Dƒ \ } } } | | d d ƒ | | d d ƒ } } | | | f | | f S(	   Nc             S   sN   |  d  k r | f } n2 |  d d  … j d ƒ } t d d „  | Dƒ ƒ } | S(   Ni   u   .c             S   s1   g  |  ]' } | j  ƒ  r' | j d  ƒ n | ‘ q S(   i   (   u   isdigitu   zfill(   u   .0u   p(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu
   <listcomp>†  s   	 u5   _semantic_key.<locals>.make_tuple.<locals>.<listcomp>(   u   Noneu   splitu   tuple(   u   su   absentu   resultu   parts(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu
   make_tuple  s
    u!   _semantic_key.<locals>.make_tuplec             S   s   g  |  ] } t  | ƒ ‘ q S(    (   u   int(   u   .0u   i(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu
   <listcomp>  s   	 u!   _semantic_key.<locals>.<listcomp>i   u   |i   u   *(   u	   is_semveru   UnsupportedVersionErroru   groups(	   u   su
   make_tupleu   mu   groupsu   majoru   minoru   patchu   preu   build(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   _semantic_key~  s    
&'u   _semantic_keyc             B   s2   |  Ee  Z d  Z d d „  Z e d d „  ƒ Z d S(   u   SemanticVersionc             C   s
   t  | ƒ S(   N(   u   _semantic_key(   u   selfu   s(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   parse”  s    u   SemanticVersion.parsec             C   s   |  j  d d d k S(   Ni   i    u   |(   u   _parts(   u   self(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   is_prerelease—  s    u   SemanticVersion.is_prereleaseN(   u   __name__u
   __module__u   __qualname__u   parseu   propertyu   is_prerelease(   u
   __locals__(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   SemanticVersion“  s   c             B   s   |  Ee  Z d  Z e Z d S(   u   SemanticMatcherN(   u   __name__u
   __module__u   __qualname__u   SemanticVersionu   version_class(   u
   __locals__(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   SemanticMatcherœ  s   c             B   sS   |  Ee  Z d  Z d d d „ Z d d „  Z d d „  Z d d „  Z d	 d
 „  Z d S(   u   VersionSchemec             C   s   | |  _  | |  _ | |  _ d  S(   N(   u   keyu   matcheru	   suggester(   u   selfu   keyu   matcheru	   suggester(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   __init__¡  s    		u   VersionScheme.__init__c             C   s9   y |  j  j | ƒ d } Wn t k
 r4 d } Yn X| S(   NTF(   u   matcheru   version_classu   Trueu   UnsupportedVersionErroru   False(   u   selfu   su   result(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   is_valid_version¦  s    
u   VersionScheme.is_valid_versionc             C   s6   y |  j  | ƒ d } Wn t k
 r1 d } Yn X| S(   NTF(   u   matcheru   Trueu   UnsupportedVersionErroru   False(   u   selfu   su   result(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   is_valid_matcher®  s    
u   VersionScheme.is_valid_matcherc             C   s   |  j  d | ƒ S(   u:   
        Used for processing some metadata fields
        u   dummy_name (%s)(   u   is_valid_matcher(   u   selfu   s(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   is_valid_constraint_list¶  s    u&   VersionScheme.is_valid_constraint_listc             C   s+   |  j  d  k r d  } n |  j  | ƒ } | S(   N(   u	   suggesteru   None(   u   selfu   su   result(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   suggest¼  s    	u   VersionScheme.suggestN(	   u   __name__u
   __module__u   __qualname__u   Noneu   __init__u   is_valid_versionu   is_valid_matcheru   is_valid_constraint_listu   suggest(   u
   __locals__(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   VersionScheme   s
   u   VersionSchemeu
   normalizedc             C   s   | S(   N(    (   u   selfu   s(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   <lambda>Æ  s    u   <lambda>u   legacyu   semanticu   defaultc             C   s'   |  t  k r t d |  ƒ ‚ n  t  |  S(   Nu   unknown scheme name: %r(   u   _SCHEMESu
   ValueError(   u   name(    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu
   get_schemeÎ  s    ()   u   __doc__u   loggingu   reu   compatu   string_typesu   __all__u	   getLoggeru   __name__u   loggeru
   ValueErroru   UnsupportedVersionErroru   objectu   Versionu   Matcheru   compileu   PEP426_VERSION_REu   _pep426_keyu   _normalized_keyu   NormalizedVersionu   _match_prefixu   NormalizedMatcheru   _REPLACEMENTSu   _SUFFIX_REPLACEMENTSu   _NUMERIC_PREFIXu   _suggest_semantic_versionu   _suggest_normalized_versionu   Iu   _VERSION_PARTu   Noneu   _VERSION_REPLACEu   _legacy_keyu   LegacyVersionu   LegacyMatcheru
   _SEMVER_REu	   is_semveru   _semantic_keyu   SemanticVersionu   SemanticMatcheru   VersionSchemeu   _SCHEMESu
   get_scheme(    (    (    u4   /tmp/pip-zej_zi-build/pip/_vendor/distlib/version.pyu   <module>	   s~   1j/$Q.r
		#	
	