
    bMh
@              	      
   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d8dZ G d de           Z! G d d          Z" G d de"          Z# ej$        dej%                  Z&ddddddZ'd9dZ(d:d!Z)d"Z* G d# d$e"          Z+d;d)Z, ej$        d*          Z-d<d-Z.d=d7Z/dS )>    )annotationsN)Iterator)CallableSupportsIntTupleUnion)parseVersionLegacyVersionInvalidVersionVERSION_PATTERNc                  V    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dS )InfinityTypereturnstrc                    dS )NInfinity selfs    \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/util/version/__init__.py__repr__zInfinityType.__repr__   s    z    intc                :    t          t          |                     S Nhashreprr   s    r   __hash__zInfinityType.__hash__       DJJr   otherobjectboolc                    dS NFr   r   r"   s     r   __lt__zInfinityType.__lt__        ur   c                    dS 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$ZZ0000r   c                    dS NTr   r'   s     r   __gt__zInfinityType.__gt__,       tr   c                    dS r6   r   r'   s     r   __ge__zInfinityType.__ge__/   r8   r   r   NegativeInfinityTypec                    t           S r   )NegativeInfinityr   s    r   __neg__zInfinityType.__neg__2   s    r   Nr   r   r   r   r"   r#   r   r$   )r   r#   r   r;   __name__
__module____qualname__r   r    r(   r+   r0   r3   r7   r:   r>   r   r   r   r   r      s                        - - - -1 1 1 1                 r   r   c                  V    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dS )r;   r   r   c                    dS )Nz	-Infinityr   r   s    r   r   zNegativeInfinityType.__repr__:   s    {r   r   c                :    t          t          |                     S r   r   r   s    r   r    zNegativeInfinityType.__hash__=   r!   r   r"   r#   r$   c                    dS r6   r   r'   s     r   r(   zNegativeInfinityType.__lt__@   r8   r   c                    dS r6   r   r'   s     r   r+   zNegativeInfinityType.__le__C   r8   r   c                <    t          |t          |                     S r   r-   r'   s     r   r0   zNegativeInfinityType.__eq__F   r1   r   c                >    t          |t          |                      S r   r-   r'   s     r   r3   zNegativeInfinityType.__ne__I   r4   r   c                    dS r&   r   r'   s     r   r7   zNegativeInfinityType.__gt__L   r)   r   c                    dS r&   r   r'   s     r   r:   zNegativeInfinityType.__ge__O   r)   r   r   r   c                    t           S r   )r   r   s    r   r>   zNegativeInfinityType.__neg__R   s    r   Nr?   r@   rA   )r   r#   r   r   rB   r   r   r   r;   r;   9   s                        - - - -1 1 1 1           r   r;   ._Version)epochreleasedevprepostlocalversionr   r   LegacyVersion | Versionc                `    	 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   )rW   s    r   r	   r	   t   sD    &w & & &W%%%%%&s    --c                      e Zd ZdZdS )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                  R    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
dS )_BaseVersionzCmpKey | LegacyCmpKey_keyr   r   c                *    t          | j                  S r   )r   r^   r   s    r   r    z_BaseVersion.__hash__   s    DIr   r"   r$   c                Z    t          |t                    st          S | j        |j        k     S r   r.   r]   NotImplementedr^   r'   s     r   r(   z_BaseVersion.__lt__   )    %.. 	"!!y5:%%r   c                Z    t          |t                    st          S | j        |j        k    S r   ra   r'   s     r   r+   z_BaseVersion.__le__   )    %.. 	"!!yEJ&&r   r#   c                Z    t          |t                    st          S | j        |j        k    S r   ra   r'   s     r   r0   z_BaseVersion.__eq__   re   r   c                Z    t          |t                    st          S | j        |j        k    S r   ra   r'   s     r   r:   z_BaseVersion.__ge__   re   r   c                Z    t          |t                    st          S | j        |j        k    S r   ra   r'   s     r   r7   z_BaseVersion.__gt__   rc   r   c                Z    t          |t                    st          S | j        |j        k    S r   ra   r'   s     r   r3   z_BaseVersion.__ne__   re   r   Nr@   )r"   r]   r   r$   rA   )rC   rD   rE   __annotations__r    r(   r+   r0   r:   r7   r3   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dS )r   rW   r   r   Nonec                    t          |          | _        t          | j                  | _        t	          j        dt                     d S )Nz[Creating a LegacyVersion has been deprecated and will be removed in the next major release.)r   _version_legacy_cmpkeyr^   warningswarnDeprecationWarning)r   rW   s     r   __init__zLegacyVersion.__init__   sF    G"4=11	1	
 	
 	
 	
 	
r   c                    | j         S r   rn   r   s    r   __str__zLegacyVersion.__str__   s
    }r   c                    d|  dS )Nz<LegacyVersion('')>r   r   s    r   r   zLegacyVersion.__repr__   s    +$++++r   c                    | j         S r   ru   r   s    r   publiczLegacyVersion.public   
    }r   c                    | j         S r   ru   r   s    r   base_versionzLegacyVersion.base_version   r{   r   r   c                    dS )Nr   r   s    r   rQ   zLegacyVersion.epoch   s    rr   c                    d S r   r   r   s    r   rR   zLegacyVersion.release       tr   c                    d S r   r   r   s    r   rT   zLegacyVersion.pre   r   r   c                    d S r   r   r   s    r   rU   zLegacyVersion.post   r   r   c                    d S r   r   r   s    r   rS   zLegacyVersion.dev   r   r   c                    d S r   r   r   s    r   rV   zLegacyVersion.local   r   r   r$   c                    dS r&   r   r   s    r   is_prereleasezLegacyVersion.is_prerelease       ur   c                    dS r&   r   r   s    r   is_postreleasezLegacyVersion.is_postrelease   r   r   c                    dS r&   r   r   s    r   is_devreleasezLegacyVersion.is_devrelease   r   r   NrW   r   r   rl   r?   r@   )r   rl   r   r$   )rC   rD   rE   rs   rv   r   propertyrz   r}   rQ   rR   rT   rU   rS   rV   r   r   r   r   r   r   r   r      s       
 
 
 
   , , , ,    X    X    X    X    X    X    X    X    X    X    X  r   r   z(\d+ | [a-z]+ | \.| -)czfinal-@)rT   preview-rcrS   sIterator[str]c              #     K   t                               |           D ]Q}t                              ||          }|r|dk    r&|d d         dv r|                    d          V  Jd|z   V  RdV  d S )N.   
0123456789   **final)_legacy_version_component_resplit_legacy_version_replacement_mapgetzfill)r   partmapped_parts      r   _parse_version_partsr     s      ,22155 
$ 
$599$EE 	kS00rr?l**##A&&&&&&##### NNNNNr   LegacyCmpKeyc                   d}g }t          |                                           D ]}|                    d          rf|dk     r0|r.|d         dk    r"|                                 |r|d         dk    "|r.|d         dk    r"|                                 |r|d         dk    "|                    |           |t          |          fS )Nr   r   r   z*final-00000000)r   lower
startswithpopappendtuple)rW   rQ   partsr   s       r   ro   ro     s    
 E E$W]]__55  ??3 	h  b	Y 6 6IIKKK   b	Y 6 6  E"I33		  E"I3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dS )'r
   z^\s*z\s*$rW   r   r   rl   c                   | j                             |          }|st          d| d          t          |                    d          r"t          |                    d                    ndt          d |                    d                              d          D                       t          |                    d          |                    d	                    t          |                    d
          |                    d          p|                    d                    t          |                    d          |                    d                    t          |                    d                              | _
        t          | j
        j        | j
        j        | j
        j        | j
        j        | j
        j        | j
        j                  | _        d S )NzInvalid version: ''rQ   r   c              3  4   K   | ]}t          |          V  d S r   )r   .0is     r   	<genexpr>z#Version.__init__.<locals>.<genexpr>\  s(      LLQ#a&&LLLLLLr   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_versionrn   _cmpkeyrQ   rR   rT   rU   rS   rV   r^   )r   rW   matchs      r   rs   zVersion.__init__S  s   ""7++ 	B !@g!@!@!@AAA !/4{{7/C/CJ#ekk'**+++LL%++i*@*@*F*Fs*K*KLLLLL%ekk'&:&:EKK<P<PQQ&H%%u{{9'='='WYAWAW  &ekk'&:&:EKK<P<PQQ&u{{7';';<<	
 	
 	
 MM!MMMM
 
			r   c                    d|  dS )Nz
<Version('rx   r   r   s    r   r   zVersion.__repr__o  s    %D%%%%r   c                B   g }| j         dk    r|                    | j          d           |                    d                    d | j        D                                  | j        7|                    d                    d | j        D                                  | j        |                    d| j                    | j        |                    d| j                    | j        |                    d	| j                    d                    |          S )
Nr   !r   c                ,    g | ]}t          |          S r   r   r   xs     r   
<listcomp>z#Version.__str__.<locals>.<listcomp>z      <<<!s1vv<<<r    c                ,    g | ]}t          |          S r   r   r   s     r   r   z#Version.__str__.<locals>.<listcomp>~  s    !;!;!;Q#a&&!;!;!;r   z.postz.dev+)rQ   r   joinrR   rT   rU   rS   rV   r   r   s     r   rv   zVersion.__str__r  s     :??LLDJ)))*** 	SXX<<t|<<<==>>> 8LL!;!;$(!;!;!;<<=== 9 LL,,,--- 8LL***+++ :!LL)TZ))***wwu~~r   r   c                    | j         j        }|S r   )rn   rQ   )r   _epochs     r   rQ   zVersion.epoch  s    m)r   tuple[int, ...]c                    | j         j        }|S r   )rn   rR   )r   _releases     r   rR   zVersion.release  s    $(M$9r   tuple[str, int] | Nonec                    | j         j        }|S r   )rn   rT   )r   _pres     r   rT   zVersion.pre  s    '+}'8r   
int | Nonec                B    | j         j        r| j         j        d         nd S Nr   )rn   rU   r   s    r   rU   zVersion.post  s!    (,(:Dt}!!$$Dr   c                B    | j         j        r| j         j        d         nd S r   )rn   rS   r   s    r   rS   zVersion.dev  s!    '+}'8Bt} ##dBr   
str | Nonec                p    | j         j        r)d                    d | j         j        D                       S d S )Nr   c                ,    g | ]}t          |          S r   r   r   s     r   r   z!Version.local.<locals>.<listcomp>  s    AAASVVAAAr   )rn   rV   r   r   s    r   rV   zVersion.local  s:    = 	88AAT]-@AAABBB4r   c                T    t          |                               dd          d         S )Nr   r   r   )r   r   r   s    r   rz   zVersion.public  s!    4yysA&&q))r   c                    g }| j         dk    r|                    | j          d           |                    d                    d | j        D                                  d                    |          S )Nr   r   r   c                ,    g | ]}t          |          S r   r   r   s     r   r   z(Version.base_version.<locals>.<listcomp>  r   r   r   )rQ   r   r   rR   r   s     r   r}   zVersion.base_version  sr     :??LLDJ)))*** 	SXX<<t|<<<==>>>wwu~~r   r$   c                &    | j         d up| j        d uS r   )rS   rT   r   s    r   r   zVersion.is_prerelease  s    xt#;txt';;r   c                    | j         d uS r   )rU   r   s    r   r   zVersion.is_postrelease  s    y$$r   c                    | j         d uS r   )rS   r   s    r   r   zVersion.is_devrelease  s    xt##r   c                P    t          | j                  dk    r| j        d         ndS )Nr   r   lenrR   r   s    r   majorzVersion.major  &    "%dl"3"3q"8"8t|Aa?r   c                P    t          | j                  dk    r| j        d         ndS )N   r   r   r   r   s    r   minorzVersion.minor  r   r   c                P    t          | j                  dk    r| j        d         ndS )N   r   r   r   r   s    r   microzVersion.micro  r   r   Nr   r?   r@   )r   r   )r   r   )r   r   )r   r   r   )rC   rD   rE   recompiler   VERBOSE
IGNORECASEr   rs   r   rv   r   rQ   rR   rT   rU   rS   rV   rz   r}   r   r   r   r   r   r   r   r   r   r
   r
   P  sL       RZ/1G;RZ"-=WXXF
 
 
 
8& & & &   8    X    X    X E E E XE C C C XC    X * * * X* 
 
 
 X
 < < < X< % % % X% $ $ $ X$ @ @ @ X@ @ @ @ X@ @ @ @ X@ @ @r   r
   letternumberstr | bytes | SupportsIntr   c                    | rH|d}|                                  } | 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 d S )
Nr   alphaabetab)r   rT   r   r   )revrrU   )r   r   )r   r   s     r   r   r     s      # >F 
 WFFvFF...FF|##Fs6{{"" #f # s6{{""4r   z[\._-]rV   LocalType | Nonec                l    | 1t          d t                              |           D                       S dS )zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Nc              3     K   | ];}|                                 s|                                nt          |          V  <d S r   )isdigitr   r   )r   r   s     r   r   z'_parse_local_version.<locals>.<genexpr>  sU       
 
 !%=DJJLLLCII
 
 
 
 
 
r   )r   _local_version_separatorsr   )rV   s    r   r   r     sM      
 
177>>
 
 
 
 
 	
 4r   rQ   r   rR   r   rT   rU   rS   tuple[SubLocalType] | NoneCmpKeyc                P   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  Z   K   | ]&}t          |t                    r|d fnt          |fV  'dS )r   N)r.   r   r=   r   s     r   r   z_cmpkey.<locals>.<genexpr>?  sP       
 
IJz!S))DQGG0@!/D
 
 
 
 
 
r   )r   reversedlist	itertools	dropwhiler=   r   )rQ   rR   rT   rU   rS   rV   r   r   _post_dev_locals              r   r   r     s     i)*:*:HW<M<MNNOOPP H {t|/ 
 | 0  {' },  
 
NS
 
 
 
 
 (D%v55r   )rW   r   r   rX   )r   r   r   r   )rW   r   r   r   )r   r   r   r   r   r   )rV   r   r   r  )rQ   r   rR   r   rT   r   rU   r   rS   r   rV   r  r   r  )0
__future__r   collectionscollections.abcr   r  r   typingr   r   r   r   rp   __all__r   r   r;   r=   InfiniteTypesr   r   r   PrePostDevTypeSubLocalType	LocalTyper  r   r$   VersionComparisonMethod
namedtuplerP   r	   
ValueErrorr   r]   r   r   r   r   r   r   ro   r   r
   r   r  r   r   r   r   r   <module>r     s   # " " " " "     $ $ $ $ $ $     				            
T
T
T               : <>>       : ('))  l$889}eCHo56]C,-	,#$&457	

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