+
    ei6  c            
       s   R t ^ RIt^ RIt^ RIt. R Ot ! R R4      t]! 4       t ! R R4      t]! 4       t]P                  ! R	. R!O4      tR t	 ! R R]
4      t ! R R4      t ! R R]4      t]P                  ! R]P                  4      tRRRRRRRRR
R/tR tR tRt ! R R]4      tR t]P                  ! R4      tR tR tR# )"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VersionLegacyVersionInvalidVersionc                   sV   a  ] tR t^,t o R tR tR tR tR tR t	R t
R tR	 tR
tV tR# )Infinityc                    R # r    self   &;/usr/lib64/python3.14/site-packages/numpy/_utils/_pep440.py__repr__ZInfinity.__repr__-   s        c                *    \        \        V 4      4      # NhashZreprr   r	   r
   __hash__ZInfinity.__hash__0       DJr   c                r   Fr   r   other   &&r
   __lt__ZInfinity.__lt__3       r   c                r   r   r   r   r   r
   __le__ZInfinity.__le__6   r   r   c                ,    \        WP                  4      # r   
isinstanceZ	__class__r   r   r
   __eq__ZInfinity.__eq__9       %00r   c                6    \        WP                  4      '       * # r   r   r   r   r
   __ne__ZInfinity.__ne__<       e^^444r   c                r   Tr   r   r   r
   __gt__ZInfinity.__gt__?       r   c                r   r"   r   r   r   r
   __ge__ZInfinity.__ge__B   r$   r   c                    \         # r   )NegativeInfinityr   r	   r
   __neg__ZInfinity.__neg__E   s    r   r   N__name__
__module____qualname____firstlineno__r   r   r   r   r   r    r#   r%   r(   __static_attributes____classdictcell__Z__classdict__   @r
   r   r   ,   s7      15   r   r   c                   sV   a  ] tR t^Lt o R tR tR tR tR tR t	R t
R tR	 tR
tV tR# )r'   c                r   )z	-Infinityr   r   r	   r
   r   ZNegativeInfinity.__repr__M   s    r   c                r   r   r   r   r	   r
   r   ZNegativeInfinity.__hash__P   r   r   c                r   r"   r   r   r   r
   r   ZNegativeInfinity.__lt__S   r$   r   c                r   r"   r   r   r   r
   r   ZNegativeInfinity.__le__V   r$   r   c                r   r   r   r   r   r
   r   ZNegativeInfinity.__eq__Y   r   r   c                r   r   r   r   r   r
   r    ZNegativeInfinity.__ne__\   r!   r   c                r   r   r   r   r   r
   r#   ZNegativeInfinity.__gt___   r   r   c                r   r   r   r   r   r
   r%   ZNegativeInfinity.__ge__b   r   r   c                r&   r   r   r   r	   r
   r(   ZNegativeInfinity.__neg__e   s    r   r   Nr)   r0   r1   r
   r'   r'   L   s7      15 r   r'   _Versiondevprec                sR     \        V 4      #   \         d    \        T 4      u # i ; i)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   )versionr	   r
   parser6   t   s,    &w &W%%&s   
 &&c                   s    ] tR t^tRtRtR# )r   z>
An invalid version was found, users should refer to PEP 440.
r   N)r*   r+   r,   r-   __doc__r.   r   r   r
   r   r      s    r   c                   sP   a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	tV tR
# )_BaseVersionc                s,    \        V P                  4      # r   )r   _keyr   r	   r
   r   Z_BaseVersion.__hash__   s    DIIr   c                (    V P                  VR  4      # )c                 s
    W8  # r   r   sZor   r
   <lambda>Z%_BaseVersion.__lt__.<locals>.<lambda>       r   _comparer   r   r
   r   Z_BaseVersion.__lt__       }}U$677r   c                r:   )c                 s
    W8*  # r   r   r;   r   r
   r=   Z%_BaseVersion.__le__.<locals>.<lambda>       r   r?   r   r   r
   r   Z_BaseVersion.__le__       }}U$788r   c                r:   )c                 s
    W8H  # r   r   r;   r   r
   r=   Z%_BaseVersion.__eq__.<locals>.<lambda>   rB   r   r?   r   r   r
   r   Z_BaseVersion.__eq__   rC   r   c                r:   )c                 s
    W8  # r   r   r;   r   r
   r=   Z%_BaseVersion.__ge__.<locals>.<lambda>   rB   r   r?   r   r   r
   r%   Z_BaseVersion.__ge__   rC   r   c                r:   )c                 s
    W8  # r   r   r;   r   r
   r=   Z%_BaseVersion.__gt__.<locals>.<lambda>   r>   r   r?   r   r   r
   r#   Z_BaseVersion.__gt__   rA   r   c                r:   )c                 s
    W8g  # r   r   r;   r   r
   r=   Z%_BaseVersion.__ne__.<locals>.<lambda>   rB   r   r?   r   r   r
   r    Z_BaseVersion.__ne__   rC   r   c                st    \        V\        4      '       g   \        # V! V P                  VP                  4      # r   )r   r8   ZNotImplementedr9   )r   r   Zmethods   &&&r
   r@   Z_BaseVersion._compare   s*    %..!!dii,,r   r   N)r*   r+   r,   r-   r   r   r   r   r%   r#   r    r@   r.   r/   r0   r1   r
   r8   r8      s2     899989- -r   r8   c                   s   a  ] tR t^t o R tR tR t]R 4       t]R 4       t	]R 4       t
]R 4       t]R 4       tR	tV tR
# )r   c                sZ    \        V4      V n        \        V P                  4      V n        R # r   )str_version_legacy_cmpkeyr9   )r   r5   r   r
   __init__ZLegacyVersion.__init__   s    G"4==1	r   c                    V P                   # r   rE   r   r	   r
   __str__ZLegacyVersion.__str__   s    }}r   c                "    R \        V 4      : R2# )z<LegacyVersion()>rD   r   r	   r
   r   ZLegacyVersion.__repr__   s     TR00r   c                rH   r   rI   r   r	   r
   publicZLegacyVersion.public       }}r   c                rH   r   rI   r   r	   r
   base_versionZLegacyVersion.base_version   rO   r   c                r   r   r   r   r	   r
   localZLegacyVersion.local   s    r   c                r   r   r   r   r	   r
   is_prereleaseZLegacyVersion.is_prerelease       r   c                r   r   r   r   r	   r
   is_postreleaseZLegacyVersion.is_postrelease   rS   r   r9   rE   N)r*   r+   r,   r-   rG   rJ   r   propertyrN   rP   rQ   rR   rT   r.   r/   r0   r1   r
   r   r      sx     21          r   z(\d+ | [a-z]+ | \.| -)cpreviewZ-zfinal-rcZ@c              #   s   "   \         P                  V 4       FW  p\        P                  W4      pV'       d   VR 8X  d   K)  VR,          R9   d   VP	                  ^4      x  KL  RV,           x  KY  	  Rx  R# 5i).:N   NZ
0123456789**finalN)_legacy_version_component_resplit_legacy_version_replacement_mapZgetZzfill)r<   part   & r
   _parse_version_partsrc      sa     ,2215.224>ts{8|#**Q-* 6 Ns   A7A9c                 sd   Rp. p\        V P                  4       4       F  pVP                  R4      '       dX   VR8  d)   V'       d!   VR,          R8X  d   VP                  4        K(  V'       d!   VR,          R8X  d   VP                  4        K(  VP	                  V4       K  	  \        V4      pW3# )r[   r\   r]   z*final-Z00000000i)rc   lowerZ
startswithZpopappendtuple)r5   epochpartsra   s   &   r
   rF   rF      s    
 E E$W]]_5??3hb	Y 6IIK 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                   s   a  ] tR tRt o ]P
                  ! R],           R,           ]P                  ]P                  ,          4      t	R t
R tR t]R 4       t]R 4       t]R	 4       t]R
 4       t]R 4       tRtV tR# )r    i  z^\s*z\s*$c                s0   V P                   P                  V4      pV'       g   \        R V R24      h\        VP	                  R4      '       d   \        VP	                  R4      4      M^ \        ;QJ d2    . R VP	                  R4      P                  R4       4       F  NK  	  5M+! R VP	                  R4      P                  R4       4       4      \        VP	                  R4      VP	                  R4      4      \        VP	                  R4      VP	                  R	4      ;'       g    VP	                  R
4      4      \        VP	                  R4      VP	                  R4      4      \        VP	                  R4      4      R7      V n
        \        V P                  P                  V P                  P                  V P                  P                  V P                  P                  V P                  P                   V P                  P"                  4      V n        R# )zInvalid version: 'Z'rg   c              3   8   "   T F  p\        V4      x  K  	  R # 5ir   )int.0Zirb   r
   	<genexpr>Z#Version.__init__.<locals>.<genexpr>,  s     L*KQ#a&&*K   releaserZ   Zpre_lZpre_nZpost_lZpost_n1Zpost_n2Zdev_lZdev_nrQ   rg   ro   r4   postr3   rQ   N)_regexZsearchr   r2   Zgrouprj   rf   r_   _parse_letter_version_parse_local_versionrE   _cmpkeyrg   ro   r4   rq   r3   rQ   r9   )r   r5   Zmatchs   && r
   rG   ZVersion.__init__#  s   ""7+ #5gYa!@AA !/4{{7/C/C#ekk'*+EL%++i*@*F*Fs*KLEEL%++i*@*F*Fs*KLL%G$G$ 'H%I&@@%++i*@ &G$G$ 'u{{7';<
& MMMM!!MMMMMMMM
	r   c                rK   )z	<Version(rL   rM   r   r	   r
   r   ZVersion.__repr__F  s    3t9-r**r   c                s   . pV P                   P                  ^ 8w  d)   VP                  V P                   P                   R24       VP                  RP                  R V P                   P                   4       4      4       V P                   P
                  e<   VP                  RP                  R V P                   P
                   4       4      4       V P                   P                  e0   VP                  RV P                   P                  ^,           24       V P                   P                  e0   VP                  RV P                   P                  ^,           24       V P                   P                  e?   VP                  RRP                  R	 V P                   P                   4       4       24       RP                  V4      # )
    !rZ   c              3   ri   r   rM   rl   xrb   r
   rm   "Version.__str__.<locals>.<genexpr>Q       D.Cc!ff.Crn    c              3   ri   r   rM   rx   rb   r
   rm   rz   U  s      C1BAQ1Brn   z.postz.dev+c              3   ri   r   rM   rx   rb   r
   rm   rz   b  s     A-@SVV-@rn   )	rE   rg   re   joinro   r4   rq   r3   rQ   r   rh   rb   r
   rJ   ZVersion.__str__I  sS    ==!#LLDMM//023 	SXXDdmm.C.CDDE ==(LL C1B1B CCD ==)LL5!3!3A!6 789 ==(LL4 1 1! 4567 ==*LLCHHAT]]-@-@AABC wwu~r   c                sF    \        V 4      P                  R ^4      ^ ,          # )r}   rD   r_   r   r	   r
   rN   ZVersion.publicg  s    4ysA&q))r   c                s$   . pV P                   P                  ^ 8w  d)   VP                  V P                   P                   R24       VP                  RP                  R V P                   P                   4       4      4       RP                  V4      # )rv   rw   rZ   c              3   ri   r   rM   rx   rb   r
   rm   Z'Version.base_version.<locals>.<genexpr>t  r{   rn   r|   )rE   rg   re   r~   ro   r   rb   r
   rP   ZVersion.base_versionk  sn     ==!#LLDMM//023 	SXXDdmm.C.CDDEwwu~r   c                s\    \        V 4      pR V9   d   VP                  R ^4      ^,          # R# )r}   Nr   )r   Zversion_stringrb   r
   rQ   ZVersion.localx  s0    T. !''Q/22 !r   c                s|    \        V P                  P                  ;'       g    V P                  P                  4      # r   )boolrE   r3   r4   r   r	   r
   rR   ZVersion.is_prerelease~  s)    DMM%%::):):;;r   c                s@    \        V P                  P                  4      # r   )r   rE   rq   r   r	   r
   rT   ZVersion.is_postrelease  s    DMM&&''r   rU   N)r*   r+   r,   r-   recompileVERSION_PATTERNVERBOSEZ
IGNORECASErr   rG   r   rJ   rV   rN   rP   rQ   rR   rT   r.   r/   r0   r1   r
   r    r      s     ZZ/!G+


R]]"F
!
F+< * * 
 
 3 3
 < < ( (r   c                 s    V '       dK   Vf   ^ pV P                  4       p V R8X  d   Rp MV R8X  d   Rp MV R9   d   Rp M	V R9   d   Rp V \        V4      3# V '       g   V'       d   Rp V \        V4      3# R # R # )	NZalphaZaZbetaZbrY   rq   )rW   r4   rX   )ZrevZr)rd   rj   )ZletterZnumberr   r
   rs   rs     s     >F 
 WFvF..F|#Fs6{""f s6{"" 6r   z[\._-]c                s    V eS   \         ;QJ d'    . R \        P                  V 4       4       F  NK  	  5# ! R \        P                  V 4       4       4      # R# )zJ
Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
Nc              3   s   "   T F6  pVP                  4       '       g   VP                  4       M
\        V4      x  K8  	  R # 5ir   )Zisdigitrd   rj   )rl   ra   rb   r
   rm   Z'_parse_local_version.<locals>.<genexpr>  s0      
> !%DJJLCI=>s
   A #A )rf   _local_version_seperatorsr_   )rQ   r	   r
   rt   rt     sW     u 
177>
u 	
u 
177>
 
 	
 r   c                 sZ   \        \        \        \        P                  ! R  \        V4      4      4      4      4      pVf   Vf   Ve	   \
        ) pM
Vf   \
        pVf   \
        ) pVf   \
        pVf	   \
        ) pM,\         ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      pWW#WE3# )c                 s    V ^ 8H  # )rv   r   )ry   r	   r
   r=   Z_cmpkey.<locals>.<lambda>  s    !q&r   c              3   sh   "   T F(  p\        V\        4      '       d   VR 3M\        ) V3x  K*  	  R# 5i)r|   N)r   rj   r   rk   rb   r
   rm   Z_cmpkey.<locals>.<genexpr>  s2      
 "!S))QG	1~=s   02)rf   ZreversedZlist	itertoolsZ	dropwhiler   rp   s   &&&&&&r
   ru   ru     s      !
 	G {t|i 
 |y {}	  

 

 

 3c00r   )r6   r    r   r   r   )rg   ro   r3   r4   rq   rQ   )r7   Zcollectionsr   r   Z__all__r   r'   Z
namedtupler2   r6   Z
ValueErrorr   r8   r   r   r   r^   r`   rc   rF   r   r    rs   r   rt   ru   r   r   r
   <module>r      s   >   	   : : @ $% !!7	&Z - -<L B  "zzrzz  
 
3	3XtS%# 
":@h(l h(V#> JJy1 
21r   