
    -i?                     "   S r SSKrSSKrSSKrSSKrSSKJrJrJrJ	r	J
r
JrJr  SSKJrJrJrJr  / SQr\\\4   r\\\\\4   4   r\\\\4   r\\\\\\\\4   \\\4   4   S4   4   r\\\\S4   \\\\4   r\\\\S4   4   r\\\\4   \\\4   /\4   r\R:                  " S/ S	Q5      rS
\S\S   4S jr " S S\ 5      r! " S S5      r" " S S\"5      r#\RH                  " S\RJ                  5      r&SSSSSS.r'S\S\\   4S jr(S
\S\4S jr)Sr* " S S\"5      r+S\S \\\,\
4   S\	\\\4      4S! jr-\RH                  " S"5      r.S#\S\	\   4S$ jr/S%\S&\\S4   S'\	\\\4      S(\	\\\4      S)\	\\\4      S#\	\\      S\4S* jr0g)+zPVendoered from
https://github.com/pypa/packaging/blob/main/packaging/version.py
    N)CallableIteratorListOptionalSupportsIntTupleUnion   )InfinityInfinityTypeNegativeInfinityNegativeInfinityType)parseVersionLegacyVersionInvalidVersionVERSION_PATTERN._Version)epochreleasedevprepostlocalversionreturn)r   r   c                 P     [        U 5      $ ! [         a    [        U 5      s $ f = f)a]  Parse the given version from a string to an appropriate class.

Parameters
----------
version : str
    Version in a string format, eg. "0.9.1" or "1.2.dev0".

Returns
-------
version : :class:`Version` object or a :class:`LegacyVersion` object
    Returned class depends on the given version: if is a valid
    PEP 440 version or a legacy version.
)r   r   r   )r   s    W/var/www/html/venv/lib/python3.13/site-packages/sklearn/externals/_packaging/version.pyr   r   A   s,    &w &W%%&s   
 %%c                       \ rS rSrSrSrg)r   U   z>
An invalid version was found, users should refer to PEP 440.
 N)__name__
__module____qualname____firstlineno____doc____static_attributes__r!       r   r   r   U   s    r(   r   c                       \ rS rSr% \\\4   \S'   S\4S jr	SS S\
4S jrSS S\
4S jrS\S\
4S jrSS S\
4S	 jrSS S\
4S
 jrS\S\
4S jrSrg)_BaseVersion[   _keyr   c                 ,    [        U R                  5      $ N)hashr,   selfs    r   __hash___BaseVersion.__hash__^   s    DIIr(   otherc                 j    [        U[        5      (       d  [        $ U R                  UR                  :  $ r.   
isinstancer*   NotImplementedr,   r1   r4   s     r   __lt___BaseVersion.__lt__d   (    %..!!yy5::%%r(   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :*  $ r.   r6   r9   s     r   __le___BaseVersion.__le__j   (    %..!!yyEJJ&&r(   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r.   r6   r9   s     r   __eq___BaseVersion.__eq__p   r@   r(   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :  $ r.   r6   r9   s     r   __ge___BaseVersion.__ge__v   r@   r(   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :  $ r.   r6   r9   s     r   __gt___BaseVersion.__gt__|   r<   r(   c                 j    [        U[        5      (       d  [        $ U R                  UR                  :g  $ r.   r6   r9   s     r   __ne___BaseVersion.__ne__   r@   r(   r!   N)r"   r#   r$   r%   r	   CmpKeyLegacyCmpKey__annotations__intr2   boolr:   r>   objectrB   rE   rH   rK   r'   r!   r(   r   r*   r*   [   s    
$
%%# &N &t &'N 't ''F 't ''N 't '&N &t &'F 't 'r(   r*   c                   6   \ rS rSrS\SS4S jrS\4S jrS\4S jr\S\4S j5       r	\S\4S	 j5       r
\S\4S
 j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r\SS j5       r\S\4S j5       r\S\4S j5       r\S\4S j5       rSrg)r      r   r   Nc                     [        U5      U l        [        U R                  5      U l        [        R
                  " S[        5        g )NzZCreating a LegacyVersion has been deprecated and will be removed in the next major release)str_version_legacy_cmpkeyr,   warningswarnDeprecationWarning)r1   r   s     r   __init__LegacyVersion.__init__   s1    G"4==1	0	
r(   c                     U R                   $ r.   rW   r0   s    r   __str__LegacyVersion.__str__   s    }}r(   c                     SU  S3$ )Nz<LegacyVersion('')>r!   r0   s    r   __repr__LegacyVersion.__repr__   s    !$s++r(   c                     U R                   $ r.   r_   r0   s    r   publicLegacyVersion.public       }}r(   c                     U R                   $ r.   r_   r0   s    r   base_versionLegacyVersion.base_version   ri   r(   c                     g)Nr!   r0   s    r   r   LegacyVersion.epoch   s    r(   c                     g r.   r!   r0   s    r   r   LegacyVersion.release       r(   c                     g r.   r!   r0   s    r   r   LegacyVersion.pre   rr   r(   c                     g r.   r!   r0   s    r   r   LegacyVersion.post   rr   r(   c                     g r.   r!   r0   s    r   r   LegacyVersion.dev   rr   r(   c                     g r.   r!   r0   s    r   r   LegacyVersion.local   rr   r(   c                     gNFr!   r0   s    r   is_prereleaseLegacyVersion.is_prerelease       r(   c                     gr|   r!   r0   s    r   is_postreleaseLegacyVersion.is_postrelease   r   r(   c                     gr|   r!   r0   s    r   is_devreleaseLegacyVersion.is_devrelease   r   r(   r,   rW   )r   N)r"   r#   r$   r%   rV   r\   r`   rd   propertyrg   rk   rP   r   r   r   r   r   r   rQ   r}   r   r   r'   r!   r(   r   r   r      s3   
 
 
 ,# ,    c   s             t      t  r(   r   z(\d+ | [a-z]+ | \.| -)czfinal-@)r   preview-rcr   sc              #      #    [         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.r
   
0123456789   **final)_legacy_version_component_resplit_legacy_version_replacement_mapgetzfill)r   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[        U5      4$ )Nrn   r   r   z*final-00000000)r   lower
startswithpopappendtuple)r   r   partsr   s       r   rX   rX      s     E E$W]]_5??3hb	Y 6IIK b	Y 6 E"I3		 E"I3 	T 6 %,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\
SS4S jrS\
4S jrS\
4S	 jr\S\4S
 j5       r\S\\S4   4S j5       r\S\\\
\4      4S j5       r\S\\   4S j5       r\S\\   4S j5       r\S\\
   4S j5       r\S\
4S j5       r\S\
4S j5       r\S\4S j5       r\S\4S j5       r\S\4S j5       r\S\4S j5       r\S\4S j5       r\S\4S j5       r Sr!g)r   i   z^\s*z\s*$r   r   Nc                    U R                   R                  U5      nU(       d  [        SU S3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: ''r   r   c              3   8   #    U  H  n[        U5      v   M     g 7fr.   )rP   .0is     r   	<genexpr>#Version.__init__.<locals>.<genexpr>.  s     L*KQ#a&&*K   r   r   pre_lpre_npost_lpost_n1post_n2dev_ldev_nr   )r   r   r   r   r   r   )_regexsearchr   r   grouprP   r   r   _parse_letter_version_parse_local_versionrW   _cmpkeyr   r   r   r   r   r   r,   )r1   r   matchs      r   r\   Version.__init__$  sU    ""7+ #5gYa!@AA !/4{{7/C/C#ekk'*+L%++i*@*F*Fs*KLL%ekk'&:EKK<PQ&H%u{{9'='WYAW &ekk'&:EKK<PQ&u{{7';<	
 MMMM!!MMMMMMMM
	r(   c                     SU  S3$ )Nz
<Version('rc   r!   r0   s    r   rd   Version.__repr__A  s    D6%%r(   c                 d   / nU R                   S:w  a  UR                  U R                    S35        UR                  SR                  S U R                   5       5      5        U R                  b1  UR                  SR                  S U R                   5       5      5        U R
                  b  UR                  SU R
                   35        U R                  b  UR                  SU R                   35        U R                  b  UR                  S	U R                   35        SR                  U5      $ )
Nr   !r   c              3   8   #    U  H  n[        U5      v   M     g 7fr.   rV   r   xs     r   r   "Version.__str__.<locals>.<genexpr>L       ;lc!fflr    c              3   8   #    U  H  n[        U5      v   M     g 7fr.   r   r   s     r   r   r   P  s      :AQr   z.postz.dev+)r   r   joinr   r   r   r   r   r1   r   s     r   r`   Version.__str__D  s     ::?LLDJJ<q)* 	SXX;dll;;< 88LL : ::; 99 LL5,- 88LL4z*+ ::!LL1TZZL)*wwu~r(   c                 2    U R                   R                  nU$ r.   )rW   r   )r1   _epochs     r   r   Version.epoch`  s    mm))r(   .c                 2    U R                   R                  nU$ r.   )rW   r   )r1   _releases     r   r   Version.releasee  s    $(MM$9$9r(   c                 2    U R                   R                  nU$ r.   )rW   r   )r1   _pres     r   r   Version.prej  s    *.--*;*;r(   c                 n    U R                   R                  (       a  U R                   R                  S   $ S $ Nr
   )rW   r   r0   s    r   r   Version.posto  s(    (,(:(:t}}!!!$DDr(   c                 n    U R                   R                  (       a  U R                   R                  S   $ S $ r   )rW   r   r0   s    r   r   Version.devs  s(    '+}}'8'8t}}  #BdBr(   c                     U R                   R                  (       a,  SR                  S U R                   R                   5       5      $ g )Nr   c              3   8   #    U  H  n[        U5      v   M     g 7fr.   r   r   s     r   r    Version.local.<locals>.<genexpr>z  s     @,?qCFF,?r   )rW   r   r   r0   s    r   r   Version.localw  s1    ==88@DMM,?,?@@@r(   c                 >    [        U 5      R                  SS5      S   $ )Nr   r
   r   )rV   r   r0   s    r   rg   Version.public~  s    4ysA&q))r(   c                     / nU R                   S:w  a  UR                  U R                    S35        UR                  SR                  S U 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>  r   r   r   )r   r   r   r   r   s     r   rk   Version.base_version  sZ     ::?LLDJJ<q)* 	SXX;dll;;<wwu~r(   c                 H    U R                   S L=(       d    U R                  S L$ r.   )r   r   r0   s    r   r}   Version.is_prerelease  s    xxt#;txxt';;r(   c                     U R                   S L$ r.   )r   r0   s    r   r   Version.is_postrelease  s    yy$$r(   c                     U R                   S L$ r.   )r   r0   s    r   r   Version.is_devrelease  s    xxt##r(   c                 V    [        U R                  5      S:  a  U R                  S   $ S$ )Nr
   r   lenr   r0   s    r   majorVersion.major  %    "%dll"3q"8t||A?a?r(   c                 V    [        U R                  5      S:  a  U R                  S   $ S$ )N   r
   r   r   r0   s    r   minorVersion.minor  r   r(   c                 V    [        U R                  5      S:  a  U R                  S   $ S$ )N   r   r   r   r0   s    r   microVersion.micro  r   r(   r   )"r"   r#   r$   r%   recompiler   VERBOSE
IGNORECASEr   rV   r\   rd   r`   r   rP   r   r   r   r   r   r   r   r   rg   rk   rQ   r}   r   r   r   r   r   r'   r!   r(   r   r   r      s   ZZ/1G;RZZ"--=WXF
 
 
:&# & 8 s   sCx   XeCHo.   Ehsm E E CXc] C C x}   * * * 
c 
 
 <t < < % % % $t $ $ @s @ @ @s @ @ @s @ @r(   r   letternumberc                     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 )
Nr   alphaabetab)r   r   r   r   )revrr   )r   rP   )r   r   s     r   r   r     s      >F 
 WFvF..F|#Fs6{""f s6{""r(   z[\._-]r   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   rP   )r   r   s     r   r   '_parse_local_version.<locals>.<genexpr>  s0      
> !%DJJLCI=>s   =?)r   _local_version_separatorsr   )r   s    r   r   r     s4      
177>
 
 	
 r(   r   r   r   r   r   c                 $   [        [        [        [        R                  " S [        U5      5      5      5      5      nUc  Uc
  Ub  [
        nOUc  [        nOUnUc  [
        nOUnUc  [        n	OUn	Uc  [
        n
O[        S U 5       5      n
XXxX4$ )Nc                     U S:H  $ )Nr   r!   )r   s    r   <lambda>_cmpkey.<locals>.<lambda>  s    AFr(   c              3   d   #    U  H&  n[        U[        5      (       a  US 4O[        U4v   M(     g7f)r   N)r7   rP   r   r   s     r   r   _cmpkey.<locals>.<genexpr>  s.      
NSz!S))QG0@!/DDes   .0)r   reversedlist	itertools	dropwhiler   r   )r   r   r   r   r   r   r   r   _post_dev_locals              r   r   r     s     i))*:HW<MNOPH {t|/ 
 | 0  {' },  
NS
 
 D55r(   )1r&   collectionsr  r   rY   typingr   r   r   r   r   r   r	   _structuresr   r   r   r   __all__InfiniteTypesrV   rP   PrePostDevTypeSubLocalType	LocalTyperM   rN   rQ   VersionComparisonMethod
namedtupler   r   
ValueErrorr   r*   r   r   r   r   r   r   rX   r   r   bytesr   r	  r   r   r!   r(   r   <module>r#     s  6   	  P P P W W
Tl$889}eCHo56]C,-	,#$&457	

 		
	 
sCx...)S
 S%S/)*"
6< %(<"=>D  !!C
&3 &5!;< &(Z +' +'\;L ;|  "zz*CRZZP  	
# C HSM "C L :@E@l E@P!!sE;67!eCHo!H JJy1 	 	(; 	<6<638_<6 
%S/	"<6 5c?
#	<6
 
%S/	"<6 E,'(<6 <6r(   