
    Owg
@              	         d dl mZ d dlZd dlmZ d dlZd dlZd dlmZm	Z	m
Z
mZ d dlZg dZ G d d      Z e       Z G d d	      Z e       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"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#dZ(d$dZ)dZ* G d de"      Z+	 	 	 	 	 	 d%dZ, ejH                  d      Z-d&d Z.	 	 	 	 	 	 	 	 	 	 	 	 	 	 d'd!Z/y)(    )annotationsN)Iterator)CallableSupportsIntTupleUnion)parseVersionLegacyVersionInvalidVersionVERSION_PATTERNc                  T    e Zd ZddZddZddZddZddZddZddZ	ddZ
dd	Zy
)InfinityTypec                     y)NInfinity selfs    S/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/util/version/__init__.py__repr__zInfinityType.__repr__   s        c                *    t        t        |             S Nhashreprr   s    r   __hash__zInfinityType.__hash__       DJr   c                     yNFr   r   others     r   __lt__zInfinityType.__lt__        r   c                     yr    r   r!   s     r   __le__zInfinityType.__le__#   r$   r   c                ,    t        |t        |             S r   
isinstancetyper!   s     r   __eq__zInfinityType.__eq__&       %d,,r   c                .    t        |t        |              S r   r(   r!   s     r   __ne__zInfinityType.__ne__)       eT$Z000r   c                     yNTr   r!   s     r   __gt__zInfinityType.__gt__,       r   c                     yr1   r   r!   s     r   __ge__zInfinityType.__ge__/   r3   r   c                    t         S r   )NegativeInfinityr   s    r   __neg__zInfinityType.__neg__2   s    r   Nreturnstrr:   intr"   objectr:   bool)r   r?   r:   NegativeInfinityType__name__
__module____qualname__r   r   r#   r&   r+   r.   r2   r5   r8   r   r   r   r   r      s/     -1 r   r   c                  T    e Zd ZddZddZddZddZddZddZddZ	ddZ
dd	Zy
)rA   c                     y)Nz	-Infinityr   r   s    r   r   zNegativeInfinityType.__repr__:   s    r   c                *    t        t        |             S r   r   r   s    r   r   zNegativeInfinityType.__hash__=   r   r   c                     yr1   r   r!   s     r   r#   zNegativeInfinityType.__lt__@   r3   r   c                     yr1   r   r!   s     r   r&   zNegativeInfinityType.__le__C   r3   r   c                ,    t        |t        |             S r   r(   r!   s     r   r+   zNegativeInfinityType.__eq__F   r,   r   c                .    t        |t        |              S r   r(   r!   s     r   r.   zNegativeInfinityType.__ne__I   r/   r   c                     yr    r   r!   s     r   r2   zNegativeInfinityType.__gt__L   r$   r   c                     yr    r   r!   s     r   r5   zNegativeInfinityType.__ge__O   r$   r   c                    t         S r   )r   r   s    r   r8   zNegativeInfinityType.__neg__R   s    r   Nr9   r<   r>   )r   r?   r:   r   rB   r   r   r   rA   rA   9   s/     -1r   rA   ._Version)epochreleasedevprepostlocalc                N    	 t        |       S # t        $ r t        |       cY S w xY w)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	   t   s,    &w &W%%&s   
 $$c                      e Zd ZdZy)r   z
    An invalid version was found, users should refer to PEP 440.

    Examples
    --------
    >>> pd.util.version.Version('1.')
    Traceback (most recent call last):
    InvalidVersion: Invalid version: '1.'
    N)rC   rD   rE   __doc__r   r   r   r   r      s    r   r   c                  P    e Zd ZU ded<   ddZddZddZddZddZddZ	dd	Z
y
)_BaseVersionzCmpKey | LegacyCmpKey_keyc                ,    t        | j                        S r   )r   r]   r   s    r   r   z_BaseVersion.__hash__   s    DIIr   c                `    t        |t              st        S | j                  |j                  k  S r   r)   r\   NotImplementedr]   r!   s     r   r#   z_BaseVersion.__lt__   %    %.!!yy5::%%r   c                `    t        |t              st        S | j                  |j                  k  S r   r`   r!   s     r   r&   z_BaseVersion.__le__   %    %.!!yyEJJ&&r   c                `    t        |t              st        S | j                  |j                  k(  S r   r`   r!   s     r   r+   z_BaseVersion.__eq__   rd   r   c                `    t        |t              st        S | j                  |j                  k\  S r   r`   r!   s     r   r5   z_BaseVersion.__ge__   rd   r   c                `    t        |t              st        S | j                  |j                  kD  S r   r`   r!   s     r   r2   z_BaseVersion.__gt__   rb   r   c                `    t        |t              st        S | j                  |j                  k7  S r   r`   r!   s     r   r.   z_BaseVersion.__ne__   rd   r   Nr<   )r"   r\   r:   r@   r>   )rC   rD   rE   __annotations__r   r#   r&   r+   r5   r2   r.   r   r   r   r\   r\      s+    
&'''&'r   r\   c                      e Zd ZddZddZddZedd       Zedd       Zedd       Z	edd       Z
edd       Zedd	       Zedd
       Zedd       Zedd       Zedd       Zedd       Zy)r   c                    t        |      | _        t        | j                        | _        t	        j
                  dt               y )Nz[Creating a LegacyVersion has been deprecated and will be removed in the next major release.)r;   _version_legacy_cmpkeyr]   warningswarnDeprecationWarning)r   rX   s     r   __init__zLegacyVersion.__init__   s1    G"4==1	1	
r   c                    | j                   S r   rl   r   s    r   __str__zLegacyVersion.__str__   s    }}r   c                    d|  dS )Nz<LegacyVersion('')>r   r   s    r   r   zLegacyVersion.__repr__   s    !$s++r   c                    | j                   S r   rs   r   s    r   publiczLegacyVersion.public       }}r   c                    | j                   S r   rs   r   s    r   base_versionzLegacyVersion.base_version   ry   r   c                     y)Nr   r   s    r   rQ   zLegacyVersion.epoch   s    r   c                     y r   r   r   s    r   rR   zLegacyVersion.release       r   c                     y r   r   r   s    r   rT   zLegacyVersion.pre   r   r   c                     y r   r   r   s    r   rU   zLegacyVersion.post   r   r   c                     y r   r   r   s    r   rS   zLegacyVersion.dev   r   r   c                     y r   r   r   s    r   rV   zLegacyVersion.local   r   r   c                     yr    r   r   s    r   is_prereleasezLegacyVersion.is_prerelease       r   c                     yr    r   r   s    r   is_postreleasezLegacyVersion.is_postrelease   r   r   c                     yr    r   r   s    r   is_devreleasezLegacyVersion.is_devrelease   r   r   NrX   r;   r:   Noner9   r<   )r:   r   r:   r@   )rC   rD   rE   rq   rt   r   propertyrx   r{   rQ   rR   rT   rU   rS   rV   r   r   r   r   r   r   r   r      s    
,                      r   r   z(\d+ | [a-z]+ | \.| -)czfinal-@)rT   preview-rcrS   c              #     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.   
0123456789   **final)_legacy_version_component_resplit_legacy_version_replacement_mapgetzfill)spartmapped_parts      r   _parse_version_partsr     sp     ,2215 
$599$EkS0r?l*##A&&##
$ 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}   r   r   z*final-00000000)r   lower
startswithpopappendtuple)rX   rQ   partsr   s       r   rm   rm     s    
 E E$W]]_5 ??3hb	Y 6IIK b	Y 6 E"I3		 E"I3 	T %,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dZ	ddZ
ddZedd       Zedd       Zedd       Zedd	       Zedd
       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       Zy)r
   z^\s*z\s*$c                   | 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: ''rQ   r   c              3  2   K   | ]  }t        |        y wr   )r=   .0is     r   	<genexpr>z#Version.__init__.<locals>.<genexpr>\  s     LQ#a&Ls   rR   r   pre_lpre_npost_lpost_n1post_n2dev_ldev_nrV   )rQ   rR   rT   rU   rS   rV   )_regexsearchr   rP   groupr=   r   r   _parse_letter_version_parse_local_versionrl   _cmpkeyrQ   rR   rT   rU   rS   rV   r]   )r   rX   matchs      r   rq   zVersion.__init__S  sP   ""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('rv   r   r   s    r   r   zVersion.__repr__o  s    D6%%r   c           
        g }| j                   dk7  r|j                  | j                    d       |j                  dj                  | j                  D cg c]  }t	        |       c}             | j
                  A|j                  dj                  | j
                  D cg c]  }t	        |       c}             | j                  |j                  d| j                          | j                  |j                  d| j                          | j                  |j                  d| j                          dj                  |      S c c}w c c}w )Nr   !r    z.postz.dev+)	rQ   r   joinrR   r;   rT   rU   rS   rV   r   r   xs      r   rt   zVersion.__str__r  s
    ::?LLDJJ<q)* 	SXXt||<!s1v<=> 88LL$((!;Q#a&!;<= 99 LL5,- 88LL4z*+ ::!LL1TZZL)*wwu~% = "<s   E!Ec                2    | j                   j                  }|S r   )rl   rQ   )r   _epochs     r   rQ   zVersion.epoch  s    mm))r   c                2    | j                   j                  }|S r   )rl   rR   )r   _releases     r   rR   zVersion.release  s    $(MM$9$9r   c                2    | j                   j                  }|S r   )rl   rT   )r   _pres     r   rT   zVersion.pre  s    '+}}'8'8r   c                d    | j                   j                  r| j                   j                  d   S d S Nr   )rl   rU   r   s    r   rU   zVersion.post  s(    (,(:(:t}}!!!$DDr   c                d    | j                   j                  r| j                   j                  d   S d S r   )rl   rS   r   s    r   rS   zVersion.dev  s(    '+}}'8'8t}}  #BdBr   c                    | j                   j                  r<dj                  | j                   j                  D cg c]  }t        |       c}      S y c c}w )Nr   )rl   rV   r   r;   )r   r   s     r   rV   zVersion.local  s@    ==88T]]-@-@ASVABB Bs   Ac                >    t        |       j                  dd      d   S )Nr   r   r   )r;   r   r   s    r   rx   zVersion.public  s    4ysA&q))r   c           
        g }| j                   dk7  r|j                  | j                    d       |j                  dj                  | j                  D cg c]  }t	        |       c}             dj                  |      S c c}w )Nr   r   r   r   )rQ   r   r   rR   r;   r   s      r   r{   zVersion.base_version  sh     ::?LLDJJ<q)* 	SXXt||<!s1v<=>wwu~ =s   Bc                >    | j                   d uxs | j                  d uS r   )rS   rT   r   s    r   r   zVersion.is_prerelease  s    xxt#;txxt';;r   c                    | j                   d uS r   )rU   r   s    r   r   zVersion.is_postrelease  s    yy$$r   c                    | j                   d uS r   )rS   r   s    r   r   zVersion.is_devrelease  s    xxt##r   c                T    t        | j                        dk\  r| j                  d   S dS )Nr   r   lenrR   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   Nr   r9   r<   )r:   tuple[int, ...])r:   tuple[str, int] | None)r:   z
int | None)r:   z
str | Noner   )rC   rD   rE   recompiler   VERBOSE
IGNORECASEr   rq   r   rt   r   rQ   rR   rT   rU   rS   rV   rx   r{   r   r   r   r   r   r   r   r   r   r
   r
   P  s\   RZZ/1G;RZZ"--=WXF
8&8       E E C C   * * 
 
 < < % % $ $ @ @ @ @ @ @r   r
   c                    | 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)r   rT   r   r   )revrrU   )r   r=   )letternumbers     r   r   r     s      >F 
 WFvF..F|#Fs6{""f s6{""r   z[\._-]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   r=   )r   r   s     r   r   z'_parse_local_version.<locals>.<genexpr>  s/      
 !%DJJLCI=
s   57)r   _local_version_separatorsr   )rV   s    r   r   r     s4      
177>
 
 	
 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F r   c              3  T   K   | ]   }t        |t              r|d fnt        |f " yw)r   N)r)   r=   r7   r   s     r   r   z_cmpkey.<locals>.<genexpr>?  s-      
IJz!S)QG0@!/DD
s   &()r   reversedlist	itertools	dropwhiler7   r   )rQ   rR   rT   rU   rS   rV   r   r   _post_dev_locals              r   r   r     s     i))*:HW<MNOPH {t|/ 
 | 0  {' },  
NS
 
 (D%v55r   )rX   r;   r:   zLegacyVersion | Version)r   r;   r:   zIterator[str])rX   r;   r:   LegacyCmpKey)r   r;   r   zstr | bytes | SupportsIntr:   r   )rV   r;   r:   zLocalType | None)rQ   r=   rR   r   rT   r   rU   r   rS   r   rV   ztuple[SubLocalType] | Noner:   CmpKey)0
__future__r   collectionscollections.abcr   r   r   typingr   r   r   r   rn   __all__r   r   rA   r7   InfiniteTypesr   r;   r=   PrePostDevTypeSubLocalType	LocalTyper  r  r@   VersionComparisonMethod
namedtuplerP   r	   
ValueErrorr   r\   r   r   r   r   r   r   rm   r   r
   r   r   r   r   r   r   r   <module>r     sZ   #  $  	  
T   : > : ()  l$889}eCHo56]C,-	,#$&457	

 		
	 
sCx...)S
 S%S/)*"
6< %(<"=>D  ";!!C
	&	Z 	+' +'\;L ;|  *rzz*CRZZP  	
# "8@C@l C@L  2  F 'BJJy1 	;6;6;6 
 ;6 !	;6
 
 ;6 &;6 ;6r   