
    w;3h                        d dl Z d dlZd dlZd Z G d de      Ze j                   G d de             Ze j                   G d de             Z G d	 d
e      Z	 G d de      Z
d Zd Zd ZdZ G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d d e      Zej.                   G d! d"e             Z G d# d$e      ZeZej.                   G d% d&e             Zy)'    Nc                 L    | xr! | d   dk(  xr | j                         xr | dk7  S )Nr   0)isdigitvalues    U/var/www/html/audio-gradio/venv/lib/python3.12/site-packages/semantic_version/base.py_has_leading_zeror	   
   s6     aC     c                       e Zd Zg Zd Zd Zy)MaxIdentifierc                      y)NzMaxIdentifier() selfs    r   __repr__zMaxIdentifier.__repr__   s     r
   c                 .    t        || j                        S N
isinstance	__class__r   others     r   __eq__zMaxIdentifier.__eq__       %00r
   N)__name__
__module____qualname__	__slots__r   r   r   r
   r   r   r      s    I!1r
   r   c                   *    e Zd ZdgZd Zd Zd Zd Zy)NumericIdentifierr   c                 $    t        |      | _        y r   )intr   r   r   s     r   __init__zNumericIdentifier.__init__   s    Z
r
   c                      d| j                   z  S )NzNumericIdentifier(%r)r   r   s    r   r   zNumericIdentifier.__repr__"   s    &33r
   c                 `    t        |t              r| j                  |j                  k(  S t        S r   )r   r    r   NotImplementedr   s     r   r   zNumericIdentifier.__eq__%   s&    e./::,,r
   c                     t        |t              ryt        |t              ryt        |t              r| j                  |j                  k  S t
        S NT)r   r   AlphaIdentifierr    r   r'   r   s     r   __lt__zNumericIdentifier.__lt__*   s@    e]+/01::++!!r
   Nr   r   r   r   r$   r   r   r+   r   r
   r   r    r       s    	I 4
"r
   r    c                   *    e Zd ZdgZd Zd Zd Zd Zy)r*   r   c                 0    |j                  d      | _        y )Nascii)encoder   r#   s     r   r$   zAlphaIdentifier.__init__9   s    \\'*
r
   c                      d| j                   z  S )NzAlphaIdentifier(%r)r   r   s    r   r   zAlphaIdentifier.__repr__<   s    $tzz11r
   c                 `    t        |t              r| j                  |j                  k(  S t        S r   )r   r*   r   r'   r   s     r   r   zAlphaIdentifier.__eq__?   s%    e_-::,,r
   c                     t        |t              ryt        |t              ryt        |t              r| j                  |j                  k  S t
        S )NTF)r   r   r    r*   r   r'   r   s     r   r+   zAlphaIdentifier.__lt__D   s@    e]+01/::++!!r
   Nr,   r   r
   r   r*   r*   5   s    	I+2
"r
   r*   c                   6   e Zd Z ej                  d      Z ej                  d      Z	 	 	 	 	 	 	 ddZedd       Z	d Z
d Zd Zdd	Zedd
       Zedd       Zedd       Zed        Zd Zd Zd Zd ZddZed        Zd Zd Zd Zd Zd Zd Zd Zy)VersionzB^(\d+)\.(\d+)\.(\d+)(?:-([0-9a-zA-Z.-]+))?(?:\+([0-9a-zA-Z.-]+))?$zL^(\d+)(?:\.(\d+)(?:\.(\d+))?)?(?:-([0-9a-zA-Z.-]*))?(?:\+([0-9a-zA-Z.-]*))?$Nc                    |rt        j                  dt        d       |d u}||cxu xr |cxu xr |cxu xr |cxu xr d u nc  }	||	z  st        d      |r| j	                  ||      \  }}}}}n6t        |xs d      }|st        |xs d      }| j                  ||||||       || _        || _        || _	        || _
        || _        || _        | j                  d      | _        | j                  d      | _        y )	NzIPartial versions will be removed in 3.0; use SimpleSpec('1.x.x') instead.   
stacklevelz6Call either Version('1.2.3') or Version(major=1, ...).r   F)
with_buildT)warningswarnDeprecationWarning
ValueErrorparsetuple_validate_kwargsmajorminorpatch
prereleasebuildpartial_build_precedence_key_cmp_precedence_key_sort_precedence_key)
r   version_stringrB   rC   rD   rE   rF   rG   has_text	has_partss
             r   r$   zVersion.__init__T   s    MM["
 "-%O5OJO%O4OP	)#UVV59ZZPW5X2E5%U z/R0Jekr*!!%z5'R


$
 $(#=#=#=#O $($>$>$$>$O!r
   c                 $    ||r|S t        |      S r   )r"   )clsr   
allow_nones      r   _coercezVersion._coerce   s    =ZL5zr
   c                     | j                   rE| j                  | j                  cxk(  rdk(  r&n n#t        | j                  dd| j
                        S t        | j                  dz   dd| j
                        S Nr   rB   rC   rD   rG      )rE   rC   rD   r5   rB   rG   r   s    r   
next_majorzVersion.next_major   se    ??tzzTZZ<1<jj	  jj1n	 r
   c                     | j                   r<| j                  dk(  r-t        | j                  | j                  d| j
                        S t        | j                  | j                  dz   d| j
                        S rS   )rE   rD   r5   rB   rC   rG   r   s    r   
next_minorzVersion.next_minor   sc    ??tzzQjjjj	  jjjj1n	 r
   c                     | j                   r7t        | j                  | j                  | j                  | j
                        S t        | j                  | j                  | j                  dz   | j
                        S )NrT   rU   )rE   r5   rB   rC   rD   rG   r   s    r   
next_patchzVersion.next_patch   sa    ??jjjjjj	  jjjjjj1n	 r
   c                 :   |dk(  r| S |dk(  rBt        | j                  | j                  | j                  | j                  | j
                        S |dk(  r7t        | j                  | j                  | j                  | j
                        S |dk(  r;t        | j                  | j                  | j
                  rdnd| j
                        S |d	k(  r?t        | j                  | j
                  rdnd| j
                  rdnd| j
                        S t        d
|z        )z@Return a new Version object, truncated up to the selected level.rF   rE   )rB   rC   rD   rE   rG   rD   rT   rC   Nr   rB   zInvalid truncation level `%s`.)r5   rB   rC   rD   rE   rG   r>   )r   levels     r   truncatezVersion.truncate   s    GKl"jjjjjj??  gjjjjjj	  gjjjj"lld	  gjj"lld"lld	  =EFFr
   c                    t        j                  d      }|j                  |      }|st        d|z        |d|j	                          }|s.|j                  d      dk  r|dz  }|j                  d      dk  rdj                  d |j                  d      D              }|j	                         t        |      k(  rt        ||      S ||j	                         d }t        j                  d	d
|      }|d   dk(  rd}|dd }nZ|d   dk(  rd}|dd }nJ|d   d
k(  r$|dd }d|v r|j                  dd      \  }}n#|d}}nd|v r|j                  dd      \  }}n|d}}|j                  dd      }|r|d
|}|r|d|} | ||      S )a  Coerce an arbitrary version string into a semver-compatible one.

        The rule is:
        - If not enough components, fill minor/patch with zeroes; unless
          partial=True
        - If more than 3 dot-separated components, extra components are "build"
          data. If some "build" data already appeared, append it to the
          extra components

        Examples:
            >>> Version.coerce('0.1')
            Version(0, 1, 0)
            >>> Version.coerce('0.1.2.3')
            Version(0, 1, 2, (), ('3',))
            >>> Version.coerce('0.1.2.3+4')
            Version(0, 1, 2, (), ('3', '4'))
            >>> Version.coerce('0.1+2-3+4_5')
            Version(0, 1, 0, (), ('2-3', '4-5'))
        z^\d+(?:\.\d+(?:\.\d+)?)?z.Version string lacks a numerical component: %rN.r7   z.0c              3   F   K   | ]  }|j                  d       xs d   yw)r   N)lstrip.0parts     r   	<genexpr>z!Version.coerce.<locals>.<genexpr>   s+      
  KK##
s   !rG   z[^a-zA-Z0-9+.-]-r   + rU   )recompilematchr>   endcountjoinsplitlenr5   subreplace)	rO   rK   rG   base_rerl   versionrestrE   rF   s	            r   coercezVersion.coerce   s   * **89n-@ ! 
 !%))+.--$q(4 --$q(
 (( 
  c*
 
 99;#n--7G44eiikl+ vv(#t47c>JHE!W^JHE!W^8Dd{$(JJsA$6!
E$("E
D[ $

3 2J $bJc3'!(*5G!(%0G7G,,r
   c                    |st        d|z        |r| j                  }n| j                  }|j                  |      }|st        d|z        |j	                         \  }}}}	}
t        |      rt        d|z        t        |      rt        d|z        t        |      rt        d|z        t        |      }| j                  ||      }| j                  ||      }|	|r	|
|||ddfS d}	n5|	dk(  rd}	n-t        |	j                  d	            }	| j                  |	d
       |
|rd}
n8d}
n5|
dk(  rd}
n-t        |
j                  d	            }
| j                  |
d       ||||	|
fS )ah  Parse a version string into a tuple of components:
           (major, minor, patch, prerelease, build).

        Args:
            version_string (str), the version string to parse
            partial (bool), whether to accept incomplete input
            coerce (bool), whether to try to map the passed in string into a
                valid Version.
        z Invalid empty version string: %rzInvalid version string: %rz!Invalid leading zero in major: %rz!Invalid leading zero in minor: %rz!Invalid leading zero in patch: %rNr   ri   r_   Fallow_leading_zeroesT)r>   partial_version_re
version_rerl   groupsr	   r"   rQ   r@   rp   _validate_identifiers)rO   rK   rG   rw   r|   rl   rB   rC   rD   rE   rF   s              r   r?   zVersion.parse)  s    ?.PQQ//JJ  09NJKK16.ueZU#@>QRRU#@>QRRU#@>QRRE
E7+E7+EMueT488
2Jz//45J%%ju%M=b[E%++c*+E%%e$%GueZ77r
   c           	          |D ]T  }|s t        d|ddj                  |            |d   dk(  s.|j                         s?|dk7  sE|rHt        d|z         y )NzInvalid empty identifier z in r_   r   r   z%Invalid leading zero in identifier %r)r>   ro   r   )rO   identifiersrz   items       r   r~   zVersion._validate_identifiersf  se     	QD SXXk24 
 Aw#~$,,.TS[I] !H4!OPP	Qr
   c                    |t        |      k7  s2|| j                  ||      k7  s|| j                  ||      k7  s||r||st        d|d|d|d|d|d|      || j                  |d       || j                  |d	       y y )
Nz Invalid kwargs to Version(major=z, minor=z, patch=z, prerelease=z, build=z
, partial=Fry   T)r"   rQ   r>   r~   )rO   rB   rC   rD   rE   rF   rG   s          r   rA   zVersion._validate_kwargsr  s     U#CKKw77CKKw77%g= 5%UG 
 !%%ju%M%%e$%G r
   c                     t        | j                  | j                  | j                  | j                  | j
                  f      S r   )iterrB   rC   rD   rE   rF   r   s    r   __iter__zVersion.__iter__  s,    TZZTZZ$**UVVr
   c                    d| j                   z  }| j                  d|| j                  fz  }| j                  d|| j                  fz  }| j                  s'| j                  r;| j                  dk(  r,| j
                   |ddj                  | j                        }| j
                  s| j                  r/| j
                  dk(  r |ddj                  | j
                        }|S )Nz%dz%s.%dr   rg   r_   rh   )rB   rC   rD   rE   rG   rF   ro   r   ru   s     r   __str__zVersion.__str__  s    #::!$** 55G::!$** 55G??t||20E$**J\!(#((4??*CDG::$,,4::+;!(#((4::*>?Gr
   c                 r    | j                   j                  dt        |       | j                  rddS ddS )N(z, partial=Trueri   ))r   r   strrG   r   s    r   r   zVersion.__repr__  s?    NN##I $4
 	
 354
 	
r
   c                     t        | j                  | j                  | j                  | j                  | j
                  f      S r   )hashrB   rC   rD   rE   rF   r   s    r   __hash__zVersion.__hash__  s.     TZZTZZ$**UVVr
   c                 @   | j                   rt        d | j                   D              }nt               f}|s$| j                  | j                  | j
                  |fS t        d | j                  xs dD              }| j                  | j                  | j
                  ||fS )zBuild a precedence key.

        The "build" component should only be used when sorting an iterable
        of versions.
        c              3   h   K   | ]*  }|j                         rt        |      n
t        |       , y wr   r   r    r*   rb   s     r   re   z0Version._build_precedence_key.<locals>.<genexpr>  s0      # ,0<<>!$'t?TT#   02c              3   h   K   | ]*  }|j                         rt        |      n
t        |       , y wr   r   rb   s     r   re   z0Version._build_precedence_key.<locals>.<genexpr>  s0      
 (,||~d#?4;PP
r   r   )rE   r@   r   rB   rC   rD   rF   )r   r:   prerelease_key	build_keys       r   rH   zVersion._build_precedence_key  s     ??" # OO# N N 





	   


(b
 
	 JJJJJJ
 	
r
   c                     | j                   S r   )rJ   r   s    r   precedence_keyzVersion.precedence_key  s    (((r
   c                 j    t        || j                        st        S | |k  ry| |kD  ry| |k(  ryt        S )NrU   r   )r   r   r'   r   s     r   __cmp__zVersion.__cmp__  s:    %0!!%<E\U]!!r
   c                 d   t        || j                        st        S | j                  |j                  k(  xrz | j                  |j                  k(  xr_ | j
                  |j
                  k(  xrD | j                  xs d|j                  xs dk(  xr! | j                  xs d|j                  xs dk(  S )Nr   )r   r   r'   rB   rC   rD   rE   rF   r   s     r   r   zVersion.__eq__  s    %0!!JJ%++% :

ekk):

ekk): &BE,<,<,BC: !ru{{'8b9	
r
   c                 h    t        || j                        st        S t        |       t        |      k7  S r   )r   r   r'   r@   r   s     r   __ne__zVersion.__ne__  s)    %0!!T{eEl**r
   c                 l    t        || j                        st        S | j                  |j                  k  S r   r   r   r'   rI   r   s     r   r+   zVersion.__lt__  -    %0!!''%*C*CCCr
   c                 l    t        || j                        st        S | j                  |j                  k  S r   r   r   s     r   __le__zVersion.__le__  -    %0!!''5+D+DDDr
   c                 l    t        || j                        st        S | j                  |j                  kD  S r   r   r   s     r   __gt__zVersion.__gt__  r   r
   c                 l    t        || j                        st        S | j                  |j                  k\  S r   r   r   s     r   __ge__zVersion.__ge__  r   r
   )NNNNNNF)F)rD   )FF) r   r   r   rj   rk   r|   r{   r$   classmethodrQ   rV   rX   rZ   r]   rw   r?   r~   rA   r   r   r   r   rH   propertyr   r   r   r   r+   r   r   r   r   r
   r   r5   r5   O   s   abJ#$st  )PV  
   "GH M- M-^ :8 :8x 	Q 	Q H H$W
W
#
J ) )
"	
+
D
E
D
Er
   r5   c                       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dZdZeee	eiZ ej$                  d      ZddZed        Zed        Zd Zd Zd Zd Zd Zy)SpecItemzA requirement specification.*<<====ri   >=>!=^~~=z$^(<|<=||=|==|>=|>|!=|\^|~|~=)(\d.*)$c                     |rt        j                  dt        d       | j                  |      \  }}|| _        || _        t        |      j                  | _        y )Nz,The `SpecItem` class will be removed in 3.0.r7   r8   )	r;   r<   r=   r?   kindspecSpecclause_clause)r   requirement_string_warnr   r   s        r   r$   zSpecItem.__init__  sP    MM>"
 ZZ 23
d		./66r
   c                    |st        d|z        |dk(  r| j                  dfS | j                  j                  |      }|st        d|z        |j	                         \  }}|| j
                  v r| j
                  |   }t        |d      }|j                  (|| j                  | j                  fvrt        d|z        ||fS )Nz+Invalid empty requirement specification: %rr   ri   z%Invalid requirement specification: %rTrf   zEInvalid requirement specification %r: build numbers have no ordering.)
r>   KIND_ANYre_specrl   r}   KIND_ALIASESr5   rF   
KIND_EQUALKIND_NEQ)rO   r   rl   r   ru   r   s         r   r?   zSpecItem.parse  s    !JM__`` $LL"%%!!"45DGYYZZg3#####D)Dw-::!d3>>3<<2P&PW$%  d|r
   c                     |t               k(  r
 | dd      S |t               k(  r
 | dd      S t        |t              r" | |j                  |j
                  d      S y )Nr   F)r   z<0.0.0-)AlwaysNeverr   Rangeoperatortarget)rO   matchers     r   from_matcherzSpecItem.from_matcher8  s[    fhs%((y..'!1!17>>B%PP (r
   c                 8    | j                   j                  |      S r   )r   rl   r   s     r   rl   zSpecItem.matchA  s    ||!!'**r
   c                 6    | j                   | j                  S r   r   r   r   s    r   r   zSpecItem.__str__D  s    DII..r
   c                 <    d| j                   d| j                  dS )Nz<SpecItem:  r   r   r   s    r   r   zSpecItem.__repr__G  s    &*ii;;r
   c                     t        |t              st        S | j                  |j                  k(  xr | j                  |j                  k(  S r   )r   r   r'   r   r   r   s     r   r   zSpecItem.__eq__J  s7    %*!!yyEJJ&B499

+BBr
   c                 D    t        | j                  | j                  f      S r   )r   r   r   r   s    r   r   zSpecItem.__hash__O  s    TYY		*++r
   N)T)r   r   r   __doc__r   KIND_LTKIND_LTEr   KIND_SHORTEQ
KIND_EMPTYKIND_GTEKIND_GTr   
KIND_CARET
KIND_TILDEKIND_COMPATIBLEr   rj   rk   r   r$   r   r?   r   rl   r   r   r   r   r   r
   r   r   r     s    &HGHJLJHGHJJO 	jJL
 bjj@AG
7  0 Q Q+/<C
,r
   r   c                 H    t        |       j                  t        |            S r   )r5   r   )v1v2s     r   comparer   S  s    2;wr{++r
   c                 H    t        |       j                  t        |            S r   )r   rl   r5   )r   ru   s     r   rl   rl   W  s    :GG,--r
   c                 N    	 t         j                  |        y# t        $ r Y yw xY w)z;Validates a version string againt the SemVer specification.TF)r5   r?   r>   )rK   s    r   validater   [  s(    n% s    	$$simplec                        e Zd ZdZi Zed        Z fdZeefd       Z	ed        Z
d Zd Zd Zd	 Zd
 Zd Zd Zd Z xZS )BaseSpeca'  A specification of compatible versions.

    Usage:
    >>> Spec('>=1.0.0', syntax='npm')

    A version matches a specification if it matches any
    of the clauses of that specification.

    Internally, a Spec is AnyOf(
        AllOf(Matcher, Matcher, Matcher),
        AllOf(...),
    )
    c                     |j                   }|t        d      || j                  v r!t        d|d| j                  |   d|      || j                  |<   |S )Nz(A Spec needs its SYNTAX field to be set.zDuplicate syntax for : , )SYNTAXr>   SYNTAXES)rO   subclasssyntaxs      r   register_syntaxzBaseSpec.register_syntaxw  s_    >GHHs||#3<</;   (Vr
   c                 d    t         t        |           || _        | j	                  |      | _        y r   )superr   r$   
expression_parse_to_clauser   )r   r   r   s     r   r$   zBaseSpec.__init__  s)    h&($++J7r
   c                 ,     | j                   |   |      S )z>Convert a syntax-specific expression into a BaseSpec instance.)r   )rO   r   r   s      r   r?   zBaseSpec.parse  s     $s||F#J//r
   c                     t               )z#Converts an expression to a clause.NotImplementedErrorrO   r   s     r   r   zBaseSpec._parse_to_clause  s     "##r
   c              #   F   K   |D ]  }| j                  |      s|  yw)z3Filter an iterable of versions satisfying the Spec.Nrl   )r   versionsru   s      r   filterzBaseSpec.filter  s&      	Gzz'"	s   !!c                 8    | j                   j                  |      S )z+Check whether a Version satisfies the Spec.)r   rl   r   s     r   rl   zBaseSpec.match  s    {{  ))r
   c                 R    t        | j                  |            }|rt        |      S y)z@Select the best compatible version among an iterable of options.N)listr   max)r   r   optionss      r   selectzBaseSpec.select  s%    t{{8,-w<r
   c                 F    t        |t              r| j                  |      S y)zWhether `version in self`.F)r   r5   rl   r   s     r   __contains__zBaseSpec.__contains__  s    gw'::g&&r
   c                 l    t        || j                        st        S | j                  |j                  k(  S r   )r   r   r'   r   r   s     r   r   zBaseSpec.__eq__  s)    %0!!{{ell**r
   c                 ,    t        | j                        S r   )r   r   r   s    r   r   zBaseSpec.__hash__  s    DKK  r
   c                     | j                   S r   )r   r   s    r   r   zBaseSpec.__str__  s    r
   c                 P    d| j                   j                  d| j                  dS )Nr   r   r   )r   r   r   r   s    r   r   zBaseSpec.__repr__  s    !^^44dooFFr
   )r   r   r   r   r   r   r   r$   DEFAULT_SYNTAXr?   r   r   rl   r  r  r   r   r   r   __classcell__r   s   @r   r   r   g  sz     H
 
8
 &4 0 0 $ $*+!Gr
   r   c                   B    e Zd Zg Zd Zd Zd Zd Zd
dZd Z	d Z
d Zy	)Clausec                     t               r   r   r   s     r   rl   zClause.match      !##r
   c                     t               r   r   r   s     r   __and__zClause.__and__  r  r
   c                     t               r   r   r   s     r   __or__zClause.__or__  r  r
   c                     t               r   r   r   s     r   r   zClause.__eq__  r  r
   c                 `    dj                  | j                               j                  d|      S )z!Pretty-print the clause.
        
	)ro   _prettyrs   )r   indents     r   prettyprintzClause.prettyprint  s&     yy(00v>>r
   c              #   &   K   t        |        yw)zvActual pretty-printing logic.

        Yields:
            A list of string. Indentation is performed with 	.
        Nreprr   s    r   r  zClause._pretty  s      4js   c                     | |k(   S r   r   r   s     r   r   zClause.__ne__  s    5=  r
   c                     | S r   r   r   s    r   simplifyzClause.simplify      r
   N)r  )r   r   r   r   rl   r  r  r   r  r  r   r!  r   r
   r   r  r    s/    I$$$$?
!r
   r  c                   Z     e Zd ZdgZ fdZd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Z xZS )AnyOfclausesc                 J    t         t        |           t        |      | _        y r   )r   r$  r$   	frozensetr%  r   r%  r   s     r   r$   zAnyOf.__init__      eT#% )r
   c                 @    t        fd| j                  D              S )Nc              3   @   K   | ]  }|j                          y wr   r   )rc   cru   s     r   re   zAnyOf.match.<locals>.<genexpr>  s     :1777#:   )anyr%  r   s    `r   rl   zAnyOf.match  s    :T\\:::r
   c                 "   t               }| j                  D ]Q  }|j                         }t        |t              r||j                  z  }3|t               k(  rA|j                  |       S t        |      dk(  r|j                         S t	        | S NrU   )	setr%  r!  r   r$  r   addrq   popr   
subclausesr   
simplifieds       r   r!  zAnyOf.simplify  s    U
ll 	+F*J*e,j000
uw&z*	+ z?a>>##j!!r
   c                 8    t        t        | j                  f      S r   )r   r$  r%  r   s    r   r   zAnyOf.__hash__      UDLL)**r
   c                 ,    t        | j                        S r   r   r%  r   s    r   r   zAnyOf.__iter__      DLL!!r
   c                 d    t        || j                        xr | j                  |j                  k(  S r   r   r   r%  r   s     r   r   zAnyOf.__eq__  %    %0RT\\U]]5RRr
   c                     t        |t              r|| z  S t        |t              st        |t              rt        | |      S t        S r   r   AllOfMatcherr$  r'   r   s     r   r  zAnyOf.__and__  <    eU#4<w':eU+Cu%%!!r
   c                    t        |t              r*t        | j                  |j                  z        }t        | S t        |t              st        |t
              r*t        | j                  t        |g      z        }t        | S t        S r   )r   r$  r   r%  rB  rA  r1  r'   r   r   r%  s      r   r  zAnyOf.__or__  sq    eU#4<<%--78G
 g	 w':eU+C4<<#ug,67G g "!r
   c                 ^    ddj                  t        d | j                  D                    z  S )Nz	AnyOf(%s)r   c              3   2   K   | ]  }t        |        y wr   r  rc   r,  s     r   re   z!AnyOf.__repr__.<locals>.<genexpr>       -L!d1g-L   ro   sortedr%  r   s    r   r   zAnyOf.__repr__  %    TYYv-Lt||-L'LMMMr
   c              #      K   d | j                   D ]9  }t        |j                               }|d d D ]	  }d|z     d|d   z   dz    ; d y w)NzAnyOF(r   r  ,r   r%  r   r  r   r   lineslines       r   r  zAnyOf._pretty  i     ll 	)F)*Ecr
 "Tk!"r"S((		)
 	   AAr   r   r   r   r$   rl   r!  r   r   r   r  r  r   r  r  r  s   @r   r$  r$    s>    I*;"+"S"Nr
   r$  c                   Z     e Zd ZdgZ fdZd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Z xZS )rA  r%  c                 J    t         t        |           t        |      | _        y r   )r   rA  r$   r'  r%  r(  s     r   r$   zAllOf.__init__  r)  r
   c                 @    t        fd| j                  D              S )Nc              3   @   K   | ]  }|j                          y wr   r   )rc   r   ru   s     r   re   zAllOf.match.<locals>.<genexpr>$  s     DV6<<(Dr-  )allr%  r   s    `r   rl   zAllOf.match#  s    Dt||DDDr
   c                 "   t               }| j                  D ]Q  }|j                         }t        |t              r||j                  z  }3|t               k(  rA|j                  |       S t        |      dk(  r|j                         S t	        | S r0  )	r1  r%  r!  r   rA  r   r2  rq   r3  r4  s       r   r!  zAllOf.simplify&  s    U
ll 	+F*J*e,j000
vx'z*	+ z?a>>##j!!r
   c                 8    t        t        | j                  f      S r   )r   rA  r%  r   s    r   r   zAllOf.__hash__4  r8  r
   c                 ,    t        | j                        S r   r:  r   s    r   r   zAllOf.__iter__7  r;  r
   c                 d    t        || j                        xr | j                  |j                  k(  S r   r=  r   s     r   r   zAllOf.__eq__:  r>  r
   c                    t        |t              st        |t              r*t        | j                  t        |g      z        }t        | S t        |t              r*t        | j                  |j                  z        }t        | S t        S r   )r   rB  r$  r   r%  r1  rA  r'   rE  s      r   r  zAllOf.__and__=  sq    eW%E5)A4<<#ug,67G
 g	 u%4<<%--78G g "!r
   c                     t        |t              r|| z  S t        |t              rt        | t        |            S t        |t              rt        | |      S t        S r   r   r$  rB  rA  r'   r   s     r   r  zAllOf.__or__F  sN    eU#4<w'uU|,,u%u%%!!r
   c                 ^    ddj                  t        d | j                  D                    z  S )Nz	AllOf(%s)r   c              3   2   K   | ]  }t        |        y wr   r  rH  s     r   re   z!AllOf.__repr__.<locals>.<genexpr>Q  rI  rJ  rK  r   s    r   r   zAllOf.__repr__P  rM  r
   c              #      K   d | j                   D ]9  }t        |j                               }|d d D ]	  }d|z     d|d   z   dz    ; d y w)NzAllOF(r   r  rO  r   rP  rQ  s       r   r  zAllOf._prettyS  rT  rU  rV  r  s   @r   rA  rA    s?    I*E"+"S"Nr
   rA  c                       e Zd Zg Zd Zd Zy)rB  c                     t        |t              r|| z  S t        |t              st        |t              rt        | |      S t        S r   r@  r   s     r   r  zMatcher.__and__`  rC  r
   c                     t        |t              r|| z  S t        |t              st        |t              rt        | |      S t        S r   rb  r   s     r   r  zMatcher.__or__h  rC  r
   N)r   r   r   r   r  r  r   r
   r   rB  rB  ]  s    I""r
   rB  c                   4    e Zd Zg Zd Zd Zd Zd Zd Zd Z	y)r   c                      y)NFr   r   s     r   rl   zNever.matcht  s    r
   c                 "    t        t        f      S r   )r   r   r   s    r   r   zNever.__hash__w  s    UH~r
   c                 .    t        || j                        S r   r   r   s     r   r   zNever.__eq__z  r   r
   c                     | S r   r   r   s     r   r  zNever.__and__}  r"  r
   c                     |S r   r   r   s     r   r  zNever.__or__      r
   c                      y)NzNever()r   r   s    r   r   zNever.__repr__  s    r
   N
r   r   r   r   rl   r   r   r  r  r   r   r
   r   r   r   q  s%    I1r
   r   c                   4    e Zd Zg Zd Zd Zd Zd Zd Zd Z	y)r   c                      yr)   r   r   s     r   rl   zAlways.match  s    r
   c                 "    t        t        f      S r   )r   r   r   s    r   r   zAlways.__hash__  s    VIr
   c                 .    t        || j                        S r   r   r   s     r   r   zAlways.__eq__  r   r
   c                     |S r   r   r   s     r   r  zAlways.__and__  ro  r
   c                     | S r   r   r   s     r   r  zAlways.__or__  r"  r
   c                      y)NzAlways()r   r   s    r   r   zAlways.__repr__  s    r
   Nrq  r   r
   r   r   r     s%    I1r
   r   c                   v     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g dZe
ef fd	Zd Zd Zd Zd Zd Z xZS )r   r   r   r   r   r   r   alwaysnaturalz
same-patchimplicitstrict)r   r   prerelease_policybuild_policyc                    t         t        |           |j                  r+|| j                  | j
                  fvrt        d||d      || _        || _        || _	        |j                  r| j                  | _        y || _        y )NzInvalid range z!: build numbers have no ordering.)r   r   r$   rF   OP_EQOP_NEQr>   r   r   r~  BUILD_STRICTr  )r   r   r   r~  r  r   s        r   r$   zRange.__init__  su    eT#%<<HTZZ,EEV%& & !!217D--<r
   c                 *   | j                   | j                  k7  r|j                  d      }|j                  rG| j                  j                         |j                         k(  }| j
                  | j                  k(  r|sy| j                  | j                  k(  rz| j                   | j                  k(  rR| j                  j                  d      |j                  d      k(  xr# |j                  | j                  j                  k(  S || j                  k(  S | j                  | j                  k(  r|| j                  kD  S | j                  | j                  k(  r|| j                  k\  S | j                  | j                  k(  rv|j                  r[| j
                  | j                  k(  rB|j                         | j                  j                         k(  r| j                  j                  sy|| j                  k  S | j                  | j                  k(  r|| j                  k  S | j                  | j                  k(  sJ | j                   | j                  k(  rS| j                  j                  d      |j                  d      k(  xr# |j                  | j                  j                  k(   S |j                  r[| j
                  | j                  k(  rB|j                         | j                  j                         k(  r| j                  j                  sy|| j                  k7  S )NrE   F)r  r  r]   rE   r   r~  PRERELEASE_SAMEPATCHr   r  rF   OP_GTOP_GTEOP_LTPRERELEASE_NATURALOP_LTEr  )r   ru   
same_patchs      r   rl   zRange.match  ss    1 11&&|4G--/73C3C3EEJ%%)B)BB:==DJJ&  D$5$55KK((6':J:J<:XX ;):):: dkk))]]djj(T[[((]]dkk)dkk))]]djj(""**d.E.EE$$&$++*>*>*@@..T[[((]]dkk)dkk))==DKK///  D$5$55KK((6':J:J<:XX ;):)::  ""**d.E.EE$$&$++*>*>*@@..dkk))r
   c                 d    t        t        | j                  | j                  | j                  f      S r   )r   r   r   r   r~  r   s    r   r   zRange.__hash__  s$    UDMM4;;8N8NOPPr
   c                     t        || j                        xrO | j                  |j                  k(  xr4 | j                  |j                  k(  xr | j                  |j                  k(  S r   )r   r   r   r   r~  r   s     r   r   zRange.__eq__  s]    udnn- B/Bu||+B &&%*A*AA		
r
   c                 6    | j                   | j                  S r   r   r   r   s    r   r   zRange.__str__  s    44r
   c                     | j                   | j                  k(  rdnd| j                   z  | j                  | j                  k(  rdnd| j                  z  z   }d| j                  d| j
                  |dS )Nri   z, prerelease_policy=%rz, build_policy=%rzRange(r   r   )r~  r  r  BUILD_IMPLICITr   r   )r   policy_parts     r   r   zRange.__repr__  sn    ((D,C,CCB)D,B,BB##t':'::B$t'8'88
 MMKK
 	
r
   )r   r   r   r  r  r  r  r  r  PRERELEASE_ALWAYSr  r  r  r  r   r$   rl   r   r   r   r   r  r  s   @r   r   r     sm    EEFEFF !"'  NLKI;M\j 	P/*bQ
5
r
   r   c                   4    e Zd ZdZed        Z G d d      Zy)
SimpleSpecr   c                 8    | j                   j                  |      S r   Parserr?   r   s     r   r   zSimpleSpec._parse_to_clause      zz
++r
   c                       e Zd ZdZ ej
                  dj                  e      ej                        Ze	d        Z
dZdZdZdZd	Zd
ZdZdZdZeedZg dZe	d        Zy)SimpleSpec.Parserz\*|0|[1-9][0-9]*z^
            (?P<op><|<=||=|==|>=|>|!=|\^|~|~=)
            (?P<major>{nb})(?:\.(?P<minor>{nb})(?:\.(?P<patch>{nb}))?)?
            (?:-(?P<prerel>[a-z0-9A-Z.-]*))?
            (?:\+(?P<build>[a-z0-9A-Z.-]*))?
            $
            )nbc                     |j                  d      }t               }|D ]?  }| j                  j                  |      st	        d|z        || j                  |      z  }A |S )NrO  zInvalid simple block %r)rp   r   
NAIVE_SPECrl   r>   parse_block)rO   r   blocksr   blocks        r   r?   zSimpleSpec.Parser.parse!  se    %%c*FXF 1~~++E2$%>%FGG#//%001
 Mr
   r   r   r   r   r   r   r   r   r   )r   ri   r   xXNc           	      8   | j                   j                  |      st        d|z        | j                   j                  |      j                         \  }}}}}}| j                  j                  ||      }|| j                  v rd n
t        |      }|| j                  v rd n
t        |      }	|| j                  v rd n
t        |      }
|6t        ddd      }|| j                  | j                  fvrft        d|z        |	t        |dd      }nG|
t        ||	d      }n6t        ||	|
|r|j                  d      nd|r|j                  d      nd      }||	|
|s|rt        d|z        |(|| j                  | j                  fvrt        d|z        || j                  k(  r|j                  r|j                         }n-|j                   r|j#                         }n|j%                         }t'        t&        j(                  |      t'        t&        j*                  |      z  S || j,                  k(  r\|J |	|j                         }n|j#                         }t'        t&        j(                  |      t'        t&        j*                  |      z  S || j.                  k(  r^|J |	|
|j                         }n|j#                         }t'        t&        j(                  |      t'        t&        j*                  |      z  S || j                  k(  r|t'        t&        j(                  |      S |	Ct'        t&        j(                  |      t'        t&        j*                  |j                               z  S |
Ct'        t&        j(                  |      t'        t&        j*                  |j#                               z  S |dk(  r*t'        t&        j0                  |t&        j2                  	      S t'        t&        j0                  |      S || j                  k(  r|J |	Ct'        t&        j*                  |      t'        t&        j(                  |j                               z  S |
Ct'        t&        j*                  |      t'        t&        j(                  |j#                               z  S |dk(  r*t'        t&        j4                  |t&        j6                  
      S |dk(  r*t'        t&        j4                  |t&        j2                  	      S t'        t&        j4                  |      S || j8                  k(  rr|J |	(t'        t&        j(                  |j                               S |
(t'        t&        j(                  |j#                               S t'        t&        j:                  |      S || j                  k(  rt'        t&        j(                  |      S || j<                  k(  rM|J |dk(  r*t'        t&        j*                  |t&        j6                  
      S t'        t&        j*                  |      S || j>                  k(  sJ |J |	(t'        t&        j*                  |j                               S |
(t'        t&        j*                  |j#                               S t'        t&        j@                  |      S )Nz!Invalid simple spec component: %rr   rB   rC   rD   zInvalid simple spec: %rr_   r   rB   rC   rD   rE   rF   ri   )r  r~  )!r  rl   r>   r}   PREFIX_ALIASESgetEMPTY_VALUESr"   r5   	PREFIX_EQ
PREFIX_GTErp   
PREFIX_NEQPREFIX_CARETrB   rV   rC   rX   rZ   r   r  r  PREFIX_TILDEPREFIX_COMPATIBLEr  r  r  r  	PREFIX_GTr  	PREFIX_LT
PREFIX_LTEr  )rO   exprprefixmajor_tminor_tpatch_tprerelrF   rB   rC   rD   r   highs                r   r  zSimpleSpec.Parser.parse_block=  sk   >>''- !Dt!KLL?B~~?S?STX?Y?`?`?b<FGWgvu''++FF;F#s'7'77DS\E#s'7'77DS\E#s'7'77DS\E} q;#--!@@$%>%EFF uAQ? uEC 4:v||C0.3%++c* %-fPU !:T!ABB VCMM3>>3R%R !:T!ABB)))<<!,,.D\\!,,.D!,,.DU\\62U5;;5MMM3+++((( =!,,.D!,,.DU\\62U5;;5MMM3000(((=EM!,,.D!,,.DU\\62U5;;5MMM3==(= v66] v6u{{FL]L]L_9```] v6u{{FL]L]L_9```b[ f5CUCUVV f553>>)(((= f5ellFL]L]L_8```] f5ellFL]L]L_8```r\ vI`I`aab[ vEDVDVWW v663==((((= v/@/@/BCC] v/@/@/BCC f553>>)U\\6223==((((R< fH_H_``U[[&11 ///(((= f.?.?.ABB] f.?.?.ABB v66r
   N)r   r   r   NUMBERrj   rk   formatVERBOSEr  r   r?   r  r  r  r  r  r  r  r  r  r  r  r  r   r
   r   r  r    s    $RZZ ! &!JJ

 
	 
	  	
	
	
 

 -	y	7 
y	7r
   r  Nr   r   r   r   r   r   r  r   r
   r   r  r    s'     F, ,b7 b7r
   r  c                   4     e Zd Z fdZed        Zd Z xZS )
LegacySpecc                     t        j                  dt        d       t        |      dkD  rt        j                  dt        d       dj                  |      }t        t        | #  |       y )NzBThe Spec() class will be removed in 3.1; use SimpleSpec() instead.r7   r8   rU   z]Passing 2+ arguments to SimpleSpec will be removed in 3.0; concatenate them with ',' instead.rO  )	r;   r<   PendingDeprecationWarningrq   r=   ro   r   r  r$   )r   expressionsr   r   s      r   r$   zLegacySpec.__init__  s[    P%	
 {aMMo"
 XXk*
j$(4r
   c                     t        |       S r   )r   r   s    r   specszLegacySpec.specs  s    Dzr
   c              #      K   t        j                  dt        d       	 t        | j                        }|D ]  }t        j                  |        y # t
        $ r | j                  g}Y 7w xY ww)NzLIterating over the components of a SimpleSpec object will be removed in 3.0.r7   r8   )r;   r<   r=   r   r   	TypeErrorr   r   )r   r%  r   s      r   r   zLegacySpec.__iter__  sk     Z	

	$4;;'G  	0F''//	0  	${{mG	$s'   A0A A0A-*A0,A--A0)r   r   r   r$   r   r  r   r  r  s   @r   r  r    s!    5   0r
   r  c                   4    e Zd ZdZed        Z G d d      Zy)NpmSpecnpmc                 8    | j                   j                  |      S r   r  r   s     r   r   zNpmSpec._parse_to_clause  r  r
   c            
       P   e Zd ZdZdZdZdZ ej                  dj                  ee      ej                        Zed        Zed        Zd	Zd
ZdZdZdZdZdZdeiZeej0                  eej2                  eej4                  eej6                  eej8                  iZg dZed        Zy)NpmSpec.Parserz||z - zx|X|\*|0|[1-9][0-9]*z[a-zA-Z0-9.-]*aQ  
            ^(?:v)?                     # Strip optional initial v
            (?P<op><|<=|>=|>|=|\^|~|)   # Operator, can be empty
            (?P<major>{nb})(?:\.(?P<minor>{nb})(?:\.(?P<patch>{nb}))?)?
            (?:-(?P<prerel>{part}))?    # Optional re-release
            (?:\+(?P<build>{part}))?    # Optional build
            $)r  rd   c                 :    t        ||t         j                        S )Nr  )r   r  )rO   r   r   s      r   rangezNpmSpec.Parser.range  s    6U=W=WXXr
   c                    t               }|j                  | j                        }|D ]  }|j                         }|sd}g }| j                  |v rI|j                  | j                  d      \  }}| j                  d|z         | j                  d|z         z   }nd|j                  d      }|D ]N  }	| j                  j                  |	      st        d|d|	      |j                  | j                  |	             P g }
g }|D ]  }|j                  j                  r|j                  t        j                  t        j                  fv r|
j!                  t        t        j"                  t%        |j                  j&                  |j                  j(                  |j                  j*                  dz   	      t        j,                  
             n|j                  t        j"                  t        j.                  fv rn|
j!                  t        t        j                  t%        |j                  j&                  |j                  j(                  dd      t        j,                  
             |
j!                  |       |j!                  | j1                  |j                  |j                  j3                                      |j!                  |        |
r|t5        |
 z  }|t5        | z  } |S )Nz>=0.0.0r7   r   r   r   zInvalid NPM block in r   rU   r  )r   r   r~  r   r   )rB   rC   rD   rE   r  )r   rp   JOINERstripHYPHENparse_simpleNPM_SPEC_BLOCKrl   r>   extendr   rE   r   r   r  r  appendr  r5   rB   rC   rD   r  r  r  r]   rA  )rO   r   resultr}   groupr5  lowr  r  r  prerelease_clausesnon_prerel_clausesr   s                r   r?   zNpmSpec.Parser.parse  s}   WF%%cjj1F 45%E
::& %CJJ :IC!$!1!1$*!=@P@PQUX\Q\@]!]J #[[-F!' C"1177>",jZ_-`"aa"))#*:*:5*AB	C &("%'"( :F}}//!??u{{ELL.II.55e).'.*0--*=*=*0--*=*=*0--*=*=*A("
 382I2I7  $__ell0KK.55e).'.*0--*=*=*0--*=*=*+/1	(" 382I2I	7 	 +11&9*11#))%+__#)==#9#9#; 3< 3 
 +11&9;:< &e%788F%!344i45l Mr
   r   r   r   r   r   r   r   ri   r  c           	      
   | j                   j                  |      }|j                         \  }}}}}}| j                  j	                  ||      }|| j
                  v rd n
t        |      }	|| j
                  v rd n
t        |      }
|| j
                  v rd n
t        |      }||| j                  fvrd }|	Ct        ddd      }|| j                  | j                  fvrt        d|z        | j                  }nX|
t        |	dd      }nG|t        |	|
d      }n6t        |	|
||r|j                  d      nd|r|j                  d      nd      }|	|
||s|rt        d|z        || j                  k(  r|j                  r|j                         j                         }n|j                   r|j                         j#                         }n`|
|j                         j                         }n?||j                         j#                         }n|j                         j%                         }| j'                  t(        j*                  |      | j'                  t(        j,                  |      gS || j.                  k(  rg|	J |
|j                         }n|j#                         }| j'                  t(        j*                  |      | j'                  t(        j,                  |      gS || j                  k(  r|	!| j'                  t(        j*                  |      gS |
N| j'                  t(        j*                  |      | j'                  t(        j,                  |j                               gS |N| j'                  t(        j*                  |      | j'                  t(        j,                  |j#                               gS | j'                  t(        j0                  |      gS || j2                  k(  r|	J |
/| j'                  t(        j*                  |j                               gS |/| j'                  t(        j*                  |j#                               gS | j'                  t(        j4                  |      gS || j                  k(  r!| j'                  t(        j*                  |      gS || j6                  k(  r%|	J | j'                  t(        j,                  |      gS || j8                  k(  sJ |	J |
/| j'                  t(        j,                  |j                               gS |/| j'                  t(        j,                  |j#                               gS | j'                  t(        j:                  |      gS )Nr   r  zInvalid expression %rr_   r   r  zInvalid NPM spec: %r)r  rl   r}   r  r  r  r"   r  r5   r  r>   rp   r  rB   r]   rV   rC   rX   rZ   r  r   r  r  r  r  r  r  r  r  r  )rO   r   rl   r  r  r  r  r  rF   rB   rC   rD   r   r  s                 r   r  zNpmSpec.Parser.parse_simpleN  s   &&,,V4E?D||~<FGWgvu''++FF;F#s'7'77DS\E#s'7'77DS\E#s'7'77DS\E VCMM?%B} q;#--!@@$%<v%EFF uAQ? uEC 4:v||C0.3%++c* %-fPU !7&!@AA)))<<!??,779D\\!??,779D]!??,779D]!??,779D!??,779D		%,,75;;PT9UVV3+++(((=!,,.D!,,.D		%,,75;;PT9UVV3==(=IIellF;<<]IIellF;SYYu{{TZTeTeTg=hii]IIellF;SYYu{{TZTeTeTg=hiiIIekk6:;;3==((((=IIellF4E4E4GHII]IIellF4E4E4GHIIIIekk6:;;3>>)		%,,7883==((((		%++v677 ///(((=IIekk63D3D3FGHH]IIekk63D3D3FGHHIIellF;<<r
   N) r   r   r   r  r  r  PARTrj   rk   r  r  r  r   r  r?   r  r  r  r  r  r  r  r  r   r  r  r  r  r  PREFIX_TO_OPERATORr  r  r   r
   r   r  r    s    ( # % 6-JJ
 
	Y 
	Y 
9	 
9	v 		
	
 	

 u{{u{{u{{
 -	Z	= 
Z	=r
   r  Nr  r   r
   r   r  r    s%    F, ,A= A=r
   r  )	functoolsrj   r;   r	   objectr   total_orderingr    r*   r5   r   r   rl   r   r
  r   r  r$  rA  rB  r   r   r   r   r  r  r   r  r   r
   r   <module>r     sa  
  	 1F 1 " " "2 "f " "2iEf iEXU,v U,p,. PGv PGf V  F<F <~>F >B"f "(G ,W ,l
G l
^ 
j7 j7 j7Z 0  0F  
H=h H= H=r
   