
    {Kg?                        d Z ddlZddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZ ddlmZmZmZmZ g dZeeef   Zeeeeef   f   Zeeeef   Zeeeeeeeef   eeef   f   df   f   Zeeeedf   eeeef   Zeeeedf   f   Zeeeef   eeef   gef   Z ej:                  dg d	      Zd
eded   fdZ G d de       Z! G d d      Z" G d de"      Z# ejH                  dejJ                        Z&ddddddZ'dedee   fdZ(d
edefdZ)dZ* G d de"      Z+ded eee,e
f   de	eeef      fd!Z- ejH                  d"      Z.d#ede	e   fd$Z/d%ed&eedf   d'e	eeef      d(e	eeef      d)e	eeef      d#e	ee      defd*Z0y)+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                 N    	 t        |       S # t        $ r t        |       cY S w xY w)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    h/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/sklearn/externals/_packaging/version.pyr   r   A   s,    &w &W%%&s   
 $$c                       e Zd ZdZy)r   zF
    An invalid version was found, users should refer to PEP 440.
    N)__name__
__module____qualname____doc__     r   r   r   U   s    r%   r   c                       e Zd ZU eeef   ed<   defdZdd de	fdZ
dd de	fdZdede	fdZdd de	fdZdd de	fd	Zdede	fd
Zy)_BaseVersion_keyr   c                 ,    t        | j                        S N)hashr(   selfs    r   __hash__z_BaseVersion.__hash__^   s    DIIr%   otherc                 `    t        |t              st        S | j                  |j                  k  S r*   
isinstancer'   NotImplementedr(   r-   r/   s     r   __lt__z_BaseVersion.__lt__d   %    %.!!yy5::%%r%   c                 `    t        |t              st        S | j                  |j                  k  S r*   r1   r4   s     r   __le__z_BaseVersion.__le__j   %    %.!!yyEJJ&&r%   c                 `    t        |t              st        S | j                  |j                  k(  S r*   r1   r4   s     r   __eq__z_BaseVersion.__eq__p   r9   r%   c                 `    t        |t              st        S | j                  |j                  k\  S r*   r1   r4   s     r   __ge__z_BaseVersion.__ge__v   r9   r%   c                 `    t        |t              st        S | j                  |j                  kD  S r*   r1   r4   s     r   __gt__z_BaseVersion.__gt__|   r6   r%   c                 `    t        |t              st        S | j                  |j                  k7  S r*   r1   r4   s     r   __ne__z_BaseVersion.__ne__   r9   r%   N)r    r!   r"   r	   CmpKeyLegacyCmpKey__annotations__intr.   boolr5   r8   objectr;   r=   r?   rA   r$   r%   r   r'   r'   [   s    
$
%%# &N &t &'N 't ''F 't ''N 't '&N &t &'F 't 'r%   r'   c                      e Zd ZdeddfdZdefdZdefdZedefd       Zedefd       Z	ede
fd	       Zedd
       Zedd       Zedd       Zedd       Zedd       Zedefd       Zedefd       Zedefd       Zy)r   r   r   Nc                     t        |      | _        t        | j                        | _        t	        j
                  dt               y )NzZCreating a LegacyVersion has been deprecated and will be removed in the next major release)str_version_legacy_cmpkeyr(   warningswarnDeprecationWarning)r-   r   s     r   __init__zLegacyVersion.__init__   s1    G"4==1	0	
r%   c                     | j                   S r*   rK   r,   s    r   __str__zLegacyVersion.__str__   s    }}r%   c                     d|  dS )Nz<LegacyVersion('')>r$   r,   s    r   __repr__zLegacyVersion.__repr__   s    !$s++r%   c                     | j                   S r*   rR   r,   s    r   publiczLegacyVersion.public       }}r%   c                     | j                   S r*   rR   r,   s    r   base_versionzLegacyVersion.base_version   rY   r%   c                      y)Nr$   r,   s    r   r   zLegacyVersion.epoch   s    r%   c                      y r*   r$   r,   s    r   r   zLegacyVersion.release       r%   c                      y r*   r$   r,   s    r   r   zLegacyVersion.pre   r_   r%   c                      y r*   r$   r,   s    r   r   zLegacyVersion.post   r_   r%   c                      y r*   r$   r,   s    r   r   zLegacyVersion.dev   r_   r%   c                      y r*   r$   r,   s    r   r   zLegacyVersion.local   r_   r%   c                      yNFr$   r,   s    r   is_prereleasezLegacyVersion.is_prerelease       r%   c                      yre   r$   r,   s    r   is_postreleasezLegacyVersion.is_postrelease   rg   r%   c                      yre   r$   r,   s    r   is_devreleasezLegacyVersion.is_devrelease   rg   r%   )r   N)r    r!   r"   rJ   rP   rS   rV   propertyrX   r[   rE   r   r   r   r   r   r   rF   rf   ri   rk   r$   r%   r   r   r      s3   
 
 
 ,# ,    c   s             t      t  r%   r   z(\d+ | [a-z]+ | \.| -)czfinal-@)r   preview-rcr   sc              #      K   t         j                  |       D ]B  }t        j                  ||      }|r|dk(  r!|d d dv r|j	                  d       <d|z    D d y w)N.r
   
0123456789   **final)_legacy_version_component_resplit_legacy_version_replacement_mapgetzfill)rr   parts     r   _parse_version_partsr      sf     ,2215.224>ts{8|#**Q-* 6 Ns   A A"c                 B   d}g }t        | j                               D ]s  }|j                  d      rO|dk  r%|r#|d   dk(  r|j                          |r	|d   dk(  r|r#|d   dk(  r|j                          |r	|d   dk(  r|j	                  |       u |t        |      fS )Nr]   rw   rx   z*final-00000000)r   lower
startswithpopappendtuple)r   r   partsr~   s       r   rL   rL      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                      e Zd Z ej                  dez   dz   ej                  ej                  z        Zde	ddfdZ
de	fdZde	fdZedefd	       Zedeed
f   fd       Zedeee	ef      fd       Zedee   fd       Zedee   fd       Zedee	   fd       Zede	fd       Zede	fd       Zedefd       Zedefd       Zedefd       Zedefd       Zedefd       Zedefd       Zy)r   z^\s*z\s*$r   r   Nc                    | j                   j                  |      }|st        d| d      t        |j	                  d      rt        |j	                  d            ndt        d |j	                  d      j                  d      D              t        |j	                  d      |j	                  d	            t        |j	                  d
      |j	                  d      xs |j	                  d            t        |j	                  d      |j	                  d            t        |j	                  d                  | _
        t        | j                  j                  | j                  j                  | j                  j                  | j                  j                  | j                  j                   | j                  j"                        | _        y )NzInvalid version: ''r   r   c              3   2   K   | ]  }t        |        y wr*   )rE   .0is     r   	<genexpr>z#Version.__init__.<locals>.<genexpr>.  s     L*KQ#a&*K   r   rt   pre_lpre_npost_lpost_n1post_n2dev_ldev_nr   )r   r   r   r   r   r   )_regexsearchr   r   grouprE   r   rz   _parse_letter_version_parse_local_versionrK   _cmpkeyr   r   r   r   r   r   r(   )r-   r   matchs      r   rP   zVersion.__init__$  sR    ""7+ #5gYa!@AA !/4{{7/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                     d|  dS )Nz
<Version('rU   r$   r,   s    r   rV   zVersion.__repr__A  s    D6%%r%   c                 Z   g }| j                   dk7  r|j                  | j                    d       |j                  dj                  d | j                  D                     | j                  1|j                  dj                  d | j                  D                     | j
                  |j                  d| j
                          | j                  |j                  d| j                          | j                  |j                  d	| j                          dj                  |      S )
Nr   !rt   c              3   2   K   | ]  }t        |        y wr*   rJ   r   xs     r   r   z"Version.__str__.<locals>.<genexpr>L       ;lc!flr    c              3   2   K   | ]  }t        |        y wr*   r   r   s     r   r   z"Version.__str__.<locals>.<genexpr>P  s      :AQr   z.postz.dev+)r   r   joinr   r   r   r   r   r-   r   s     r   rS   zVersion.__str__D  s     ::?LLDJJ<q)* 	SXX;dll;;< 88LL : ::; 99 LL5,- 88LL4z*+ ::!LL1TZZL)*wwu~r%   c                 2    | j                   j                  }|S r*   )rK   r   )r-   _epochs     r   r   zVersion.epoch`  s    mm))r%   .c                 2    | j                   j                  }|S r*   )rK   r   )r-   _releases     r   r   zVersion.releasee  s    $(MM$9$9r%   c                 2    | j                   j                  }|S r*   )rK   r   )r-   _pres     r   r   zVersion.prej  s    *.--*;*;r%   c                 d    | j                   j                  r| j                   j                  d   S d S Nr
   )rK   r   r,   s    r   r   zVersion.posto  s(    (,(:(:t}}!!!$DDr%   c                 d    | j                   j                  r| j                   j                  d   S d S r   )rK   r   r,   s    r   r   zVersion.devs  s(    '+}}'8'8t}}  #BdBr%   c                     | j                   j                  r,dj                  d | j                   j                  D              S y )Nrt   c              3   2   K   | ]  }t        |        y wr*   r   r   s     r   r   z Version.local.<locals>.<genexpr>z  s     @,?qCF,?r   )rK   r   r   r,   s    r   r   zVersion.localw  s1    ==88@DMM,?,?@@@r%   c                 >    t        |       j                  dd      d   S )Nr   r
   r   )rJ   rz   r,   s    r   rX   zVersion.public~  s    4ysA&q))r%   c                     g }| j                   dk7  r|j                  | j                    d       |j                  dj                  d | j                  D                     dj                  |      S )Nr   r   rt   c              3   2   K   | ]  }t        |        y wr*   r   r   s     r   r   z'Version.base_version.<locals>.<genexpr>  r   r   r   )r   r   r   r   r   s     r   r[   zVersion.base_version  sZ     ::?LLDJJ<q)* 	SXX;dll;;<wwu~r%   c                 >    | j                   d uxs | j                  d uS r*   )r   r   r,   s    r   rf   zVersion.is_prerelease  s    xxt#;txxt';;r%   c                     | j                   d uS r*   )r   r,   s    r   ri   zVersion.is_postrelease  s    yy$$r%   c                     | j                   d uS r*   )r   r,   s    r   rk   zVersion.is_devrelease  s    xxt##r%   c                 T    t        | j                        dk\  r| j                  d   S dS )Nr
   r   lenr   r,   s    r   majorzVersion.major  %    "%dll"3q"8t||A?a?r%   c                 T    t        | j                        dk\  r| j                  d   S dS )N   r
   r   r   r,   s    r   minorzVersion.minor  r   r%   c                 T    t        | j                        dk\  r| j                  d   S dS )N   r   r   r   r,   s    r   microzVersion.micro  r   r%   ) r    r!   r"   recompiler   VERBOSE
IGNORECASEr   rJ   rP   rV   rS   rl   rE   r   r   r   r   r   r   r   r   rX   r[   rF   rf   ri   rk   r   r   r   r$   r%   r   r   r      s    RZZ/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                     | r>|d}| j                         } | dk(  rd} n| dk(  rd} n| dv rd} n| dv rd	} | t        |      fS | s|rd	} | t        |      fS y )
Nr   alphaabetab)rm   r   ro   rq   )revrr   )r   rE   )r   r   s     r   r   r     s      >F 
 WFvF..F|#Fs6{""f s6{""r%   z[\._-]r   c                 R    | %t        d t        j                  |       D              S y)zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Nc              3   r   K   | ]/  }|j                         s|j                         n
t        |       1 y wr*   )isdigitr   rE   )r   r~   s     r   r   z'_parse_local_version.<locals>.<genexpr>  s/      
> !%DJJLCI=>s   57)r   _local_version_separatorsrz   )r   s    r   r   r     s4      
177>
 
 	
 r%   r   r   r   r   r   c                    t        t        t        t        j                  d t        |                              }||	|t
        }n|t        }n|}|t
        }n|}|t        }	n|}	|t
        }
nt        d |D              }
| ||||	|
fS )Nc                     | dk(  S )Nr   r$   )r   s    r   <lambda>z_cmpkey.<locals>.<lambda>  s    AFr%   c              3   T   K   | ]   }t        |t              r|d fnt        |f " yw)r   N)r2   rE   r   r   s     r   r   z_cmpkey.<locals>.<genexpr>  s,      
NSz!S)QG0@!/DDes   &()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%v55r%   )1r#   collectionsr   r   rM   typingr   r   r   r   r   r   r	   _structuresr   r   r   r   __all__InfiniteTypesrJ   rE   PrePostDevTypeSubLocalType	LocalTyperB   rC   rF   VersionComparisonMethod
namedtupler   r   
ValueErrorr   r'   r   r   r   ry   r{   r   rL   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 ;|  *rzz*CRZZP  	
# C HSM "C L :@E@l E@P!!sE;67!eCHo!H 'BJJy1 	 	(; 	<6<638_<6 
%S/	"<6 5c?
#	<6
 
%S/	"<6 E,'(<6 <6r%   