
    Kh6                        S r SSKrSSKrSSKr/ SQr " S S5      r\" 5       r " S S5      r\" 5       r\R                  " S/ S	Q5      rS
 r	 " S S\
5      r " S S5      r " S S\5      r\R                  " S\R                  5      rSSSSSS.rS rS rSr " S S\5      rS r\R                  " S5      rS rS rg)zUtility to compare pep440 compatible version strings.

The LooseVersion and StrictVersion classes that distutils provides don't
work; they don't recognize anything like alpha/beta/rc/dev versions.
    N)parseVersionLegacyVersionInvalidVersionVERSION_PATTERNc                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)Infinity-   c                     g)Nr	    selfs    F/var/www/html/env/lib/python3.13/site-packages/numpy/_utils/_pep440.py__repr__Infinity.__repr__.   s        c                 *    [        [        U 5      5      $ Nhashreprr   s    r   __hash__Infinity.__hash__1       DJr   c                     gNFr   r   others     r   __lt__Infinity.__lt__4       r   c                     gr   r   r   s     r   __le__Infinity.__le__7   r!   r   c                 ,    [        XR                  5      $ r   
isinstance	__class__r   s     r   __eq__Infinity.__eq__:       %00r   c                 6    [        XR                  5      (       + $ r   r&   r   s     r   __ne__Infinity.__ne__=       e^^444r   c                     gNTr   r   s     r   __gt__Infinity.__gt__@       r   c                     gr1   r   r   s     r   __ge__Infinity.__ge__C   r4   r   c                     [         $ r   )NegativeInfinityr   s    r   __neg__Infinity.__neg__F   s    r   r   N__name__
__module____qualname____firstlineno__r   r   r   r#   r)   r-   r2   r6   r:   __static_attributes__r   r   r   r	   r	   -   s/     15 r   r	   c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)r9   M   c                     g)Nz	-Infinityr   r   s    r   r   NegativeInfinity.__repr__N   s    r   c                 *    [        [        U 5      5      $ r   r   r   s    r   r   NegativeInfinity.__hash__Q   r   r   c                     gr1   r   r   s     r   r   NegativeInfinity.__lt__T   r4   r   c                     gr1   r   r   s     r   r#   NegativeInfinity.__le__W   r4   r   c                 ,    [        XR                  5      $ r   r&   r   s     r   r)   NegativeInfinity.__eq__Z   r+   r   c                 6    [        XR                  5      (       + $ r   r&   r   s     r   r-   NegativeInfinity.__ne__]   r/   r   c                     gr   r   r   s     r   r2   NegativeInfinity.__gt__`   r!   r   c                     gr   r   r   s     r   r6   NegativeInfinity.__ge__c   r!   r   c                     [         $ r   )r	   r   s    r   r:   NegativeInfinity.__neg__f   s    r   r   Nr<   r   r   r   r9   r9   M   s/     15r   r9   _Version)epochreleasedevprepostlocalc                 P     [        U 5      $ ! [         a    [        U 5      s $ f = f)z
Parse the given version string and return either a :class:`Version` object
or a :class:`LegacyVersion` object depending on if the given version is
a valid PEP 440 version or a legacy version.
)r   r   r   )versions    r   r   r   u   s,    &w &W%%&s   
 %%c                       \ rS rSrSrSrg)r      z>
An invalid version was found, users should refer to PEP 440.
r   N)r=   r>   r?   r@   __doc__rA   r   r   r   r   r      s    r   r   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)_BaseVersion   c                 ,    [        U R                  5      $ r   )r   _keyr   s    r   r   _BaseVersion.__hash__   s    DIIr   c                 (    U R                  US 5      $ )Nc                 
    X:  $ r   r   sos     r   <lambda>%_BaseVersion.__lt__.<locals>.<lambda>       r   _comparer   s     r   r   _BaseVersion.__lt__       }}U$677r   c                 (    U R                  US 5      $ )Nc                 
    X:*  $ r   r   rj   s     r   rm   %_BaseVersion.__le__.<locals>.<lambda>       r   rp   r   s     r   r#   _BaseVersion.__le__       }}U$788r   c                 (    U R                  US 5      $ )Nc                 
    X:H  $ r   r   rj   s     r   rm   %_BaseVersion.__eq__.<locals>.<lambda>   rw   r   rp   r   s     r   r)   _BaseVersion.__eq__   ry   r   c                 (    U R                  US 5      $ )Nc                 
    X:  $ r   r   rj   s     r   rm   %_BaseVersion.__ge__.<locals>.<lambda>   rw   r   rp   r   s     r   r6   _BaseVersion.__ge__   ry   r   c                 (    U R                  US 5      $ )Nc                 
    X:  $ r   r   rj   s     r   rm   %_BaseVersion.__gt__.<locals>.<lambda>   ro   r   rp   r   s     r   r2   _BaseVersion.__gt__   rs   r   c                 (    U R                  US 5      $ )Nc                 
    X:g  $ r   r   rj   s     r   rm   %_BaseVersion.__ne__.<locals>.<lambda>   rw   r   rp   r   s     r   r-   _BaseVersion.__ne__   ry   r   c                 r    [        U[        5      (       d  [        $ U" U R                  UR                  5      $ r   )r'   rc   NotImplementedrf   )r   r   methods      r   rq   _BaseVersion._compare   s*    %..!!dii,,r   r   N)r=   r>   r?   r@   r   r   r#   r)   r6   r2   r-   rq   rA   r   r   r   rc   rc      s*    899989-r   rc   c                   v    \ rS rSrS rS rS r\S 5       r\S 5       r	\S 5       r
\S 5       r\S	 5       rS
rg)r      c                 X    [        U5      U l        [        U R                  5      U l        g r   )str_version_legacy_cmpkeyrf   )r   r^   s     r   __init__LegacyVersion.__init__   s    G"4==1	r   c                     U R                   $ r   r   r   s    r   __str__LegacyVersion.__str__   s    }}r   c                 H    SR                  [        [        U 5      5      5      $ )Nz<LegacyVersion({0})>formatr   r   r   s    r   r   LegacyVersion.__repr__   s    %,,T#d)_==r   c                     U R                   $ r   r   r   s    r   publicLegacyVersion.public       }}r   c                     U R                   $ r   r   r   s    r   base_versionLegacyVersion.base_version   r   r   c                     g r   r   r   s    r   r\   LegacyVersion.local   s    r   c                     gr   r   r   s    r   is_prereleaseLegacyVersion.is_prerelease       r   c                     gr   r   r   s    r   is_postreleaseLegacyVersion.is_postrelease   r   r   rf   r   N)r=   r>   r?   r@   r   r   r   propertyr   r   r\   r   r   rA   r   r   r   r   r      su    2>          r   r   z(\d+ | [a-z]+ | \.| -)czfinal-@)rZ   preview-rcrY   c              #      #    [         R                  U 5       HL  n[        R                  X5      nU(       a  US:X  a  M'  US S S;   a  UR	                  S5      v   ME  SU-   v   MN     Sv   g 7f)N.   
0123456789   **final)_legacy_version_component_resplit_legacy_version_replacement_mapgetzfill)rk   parts     r   _parse_version_partsr      sc     ,2215.224>ts{8|#**Q-* 6 Ns   A+A-c                    Sn/ n[        U R                  5       5       H  nUR                  S5      (       aj  US:  a2  U(       a+  US   S:X  a"  UR                  5         U(       a  US   S:X  a  M"  U(       a+  US   S:X  a"  UR                  5         U(       a  US   S:X  a  M"  UR	                  U5        M     [        U5      nX4$ )Nr   r   z*final-00000000)r   lower
startswithpopappendtuple)r^   rW   partsr   s       r   r   r      s    
 E E$W]]_5??3hb	Y 6IIK b	Y 6 E"I3		 E"I3 	T 6 %LE<r   a  
    v?
    (?:
        (?:(?P<epoch>[0-9]+)!)?                           # epoch
        (?P<release>[0-9]+(?:\.[0-9]+)*)                  # release segment
        (?P<pre>                                          # pre-release
            [-_\.]?
            (?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview))
            [-_\.]?
            (?P<pre_n>[0-9]+)?
        )?
        (?P<post>                                         # post release
            (?:-(?P<post_n1>[0-9]+))
            |
            (?:
                [-_\.]?
                (?P<post_l>post|rev|r)
                [-_\.]?
                (?P<post_n2>[0-9]+)?
            )
        )?
        (?P<dev>                                          # dev release
            [-_\.]?
            (?P<dev_l>dev)
            [-_\.]?
            (?P<dev_n>[0-9]+)?
        )?
    )
    (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))?       # local version
c                       \ rS rSr\R
                  " S\-   S-   \R                  \R                  -  5      r	S r
S rS r\S 5       r\S 5       r\S	 5       r\S
 5       r\S 5       rSrg)r   i  z^\s*z\s*$c                    U R                   R                  U5      nU(       d  [        SR                  U5      5      e[	        UR                  S5      (       a  [        UR                  S5      5      OS[        S UR                  S5      R                  S5       5       5      [        UR                  S5      UR                  S5      5      [        UR                  S	5      UR                  S
5      =(       d    UR                  S5      5      [        UR                  S5      UR                  S5      5      [        UR                  S5      5      S9U l        [        U R                  R                  U R                  R                  U R                  R                  U R                  R                   U R                  R"                  U R                  R$                  5      U l        g )NzInvalid version: '{0}'rW   r   c              3   8   #    U  H  n[        U5      v   M     g 7fr   )int.0is     r   	<genexpr>#Version.__init__.<locals>.<genexpr>-  s     L*KQ#a&&*K   rX   r   pre_lpre_npost_lpost_n1post_n2dev_ldev_nr\   rW   rX   rZ   r[   rY   r\   )_regexsearchr   r   rV   groupr   r   r   _parse_letter_version_parse_local_versionr   _cmpkeyrW   rX   rZ   r[   rY   r\   rf   )r   r^   matchs      r   r   Version.__init__$  sb   ""7+ !9!@!@!IJJ !/4{{7/C/C#ekk'*+L%++i*@*F*Fs*KLL%G$G$ 'H%I&@%++i*@ &G$G$ 'u{{7';<
& MMMM!!MMMMMMMM
	r   c                 H    SR                  [        [        U 5      5      5      $ )Nz<Version({0})>r   r   s    r   r   Version.__repr__G  s    &&tCI77r   c                    / nU R                   R                  S:w  a4  UR                  SR                  U R                   R                  5      5        UR                  SR	                  S U R                   R
                   5       5      5        U R                   R                  b;  UR                  SR	                  S U R                   R                   5       5      5        U R                   R                  b7  UR                  SR                  U R                   R                  S   5      5        U R                   R                  b7  UR                  S	R                  U R                   R                  S   5      5        U R                   R                  bJ  UR                  S
R                  SR	                  S U R                   R                   5       5      5      5        SR	                  U5      $ )Nr   {0}!r   c              3   8   #    U  H  n[        U5      v   M     g 7fr   r   r   xs     r   r   "Version.__str__.<locals>.<genexpr>R       D.Cc!ff.Cr    c              3   8   #    U  H  n[        U5      v   M     g 7fr   r   r   s     r   r   r   V  s      C1BAQ1Br   z.post{0}r   z.dev{0}z+{0}c              3   8   #    U  H  n[        U5      v   M     g 7fr   r   r   s     r   r   r   c  s     &K7J!s1vv7Jr   )
r   rW   r   r   joinrX   rZ   r[   rY   r\   r   r   s     r   r   Version.__str__J  s[    ==!#LLt}}':':;< 	SXXDdmm.C.CDDE ==(LL C1B1B CCD ==)LL**4==+=+=a+@AB ==(LL))$--*;*;A*>?@ ==*LLchh&Kt}}7J7J&KKL wwu~r   c                 >    [        U 5      R                  SS5      S   $ )N+r   r   r   r   r   s    r   r   Version.publich  s    4ysA&q))r   c                 :   / nU R                   R                  S:w  a4  UR                  SR                  U R                   R                  5      5        UR                  SR	                  S U R                   R
                   5       5      5        SR	                  U5      $ )Nr   r   r   c              3   8   #    U  H  n[        U5      v   M     g 7fr   r   r   s     r   r   'Version.base_version.<locals>.<genexpr>u  r   r   r   )r   rW   r   r   r   rX   r   s     r   r   Version.base_versionl  so     ==!#LLt}}':':;< 	SXXDdmm.C.CDDEwwu~r   c                 P    [        U 5      nSU;   a  UR                  SS5      S   $ g )Nr   r   r   )r   version_strings     r   r\   Version.localy  s0    T. !''Q/22 !r   c                 z    [        U R                  R                  =(       d    U R                  R                  5      $ r   )boolr   rY   rZ   r   s    r   r   Version.is_prerelease  s&    DMM%%:):):;;r   c                 @    [        U R                  R                  5      $ r   )r  r   r[   r   s    r   r   Version.is_postrelease  s    DMM&&''r   r   N)r=   r>   r?   r@   recompiler   VERBOSE
IGNORECASEr   r   r   r   r   r   r   r\   r   r   rA   r   r   r   r   r     s    ZZ/!G+


R]]"F
!
F8< * * 
 
 3 3
 < < ( (r   r   c                     U (       aE  Uc  SnU R                  5       n U S:X  a  Sn OU S:X  a  Sn OU S;   a  Sn OU S;   a  S	n U [        U5      4$ U (       d  U(       a  S	n U [        U5      4$ g g )
Nr   alphaabetab)r   rZ   r   r   )revrr[   )r   r   )letternumbers     r   r   r     s     >F 
 WFvF..F|#Fs6{""f s6{"" 6r   z[\._-]c                 T    U b%  [        S [        R                  U 5       5       5      $ g)zJ
Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
Nc              3      #    U  H5  nUR                  5       (       d  UR                  5       O
[        U5      v   M7     g 7fr   )isdigitr   r   )r   r   s     r   r   '_parse_local_version.<locals>.<genexpr>  s0      
> !%DJJLCI=>s   =?)r   _local_version_seperatorsr   )r\   s    r   r   r     s4      
177>
 
 	
 r   c                    [        [        [        [        R                  " S [        U5      5      5      5      5      nUc  Uc  Ub  [
        * nO	Uc  [
        nUc  [
        * nUc  [
        nUc  [
        * nO[        S U 5       5      nXX#XE4$ )Nc                     U S:H  $ )Nr   r   )r   s    r   rm   _cmpkey.<locals>.<lambda>  s    !q&r   c              3   f   #    U  H'  n[        U[        5      (       a  US 4O[        * U4v   M)     g7f)r   N)r'   r   r	   r   s     r   r   _cmpkey.<locals>.<genexpr>  s2      
 "!S))QG	1~=s   /1)r   reversedlist	itertools	dropwhiler	   r   s         r   r   r     s      !
 	G {t|i 
 |y {}	  

 

 3c00r   )ra   collectionsr  r  __all__r	   r9   
namedtuplerV   r   
ValueErrorr   rc   r   r  r  r   r   r   r   r   r   r   r  r   r   r   r   r   <module>r%     s   >   	   : : @ $% !!7	&Z - -<L B  "zzrzz  
 3XS# 
":@h(l h(V#> JJy1 
21r   