a
    Pf
@                  	   @  s  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 dZe ZG d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dg dZdddddZG dd de Z!G dd dZ"G dd de"Z#e$dej%Z&ddddddZ'ddddd Z(dd!dd"d#Z)d$Z*G d%d& d&e"Z+dd'd(d)d*d+Z,e$d,Z-dd-d.d/d0Z.d1d2d(d(d(d3d4d5d6d7Z/dS )8    )annotationsN)Iterator)CallableSupportsIntTupleUnion)parseVersionLegacyVersionInvalidVersionVERSION_PATTERNc                   @  s   e Zd ZddddZddddZdd	d
ddZdd	d
ddZdd	d
ddZdd	d
ddZdd	d
ddZ	dd	d
ddZ
dddddZdS )InfinityTypestrreturnc                 C  s   dS )NInfinity selfr   r   U/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/util/version/__init__.py__repr__   s    zInfinityType.__repr__intc                 C  s   t t| S Nhashreprr   r   r   r   __hash__   s    zInfinityType.__hash__objectboolotherr   c                 C  s   dS NFr   r   r    r   r   r   __lt__    s    zInfinityType.__lt__c                 C  s   dS r!   r   r"   r   r   r   __le__#   s    zInfinityType.__le__c                 C  s   t |t| S r   
isinstancetyper"   r   r   r   __eq__&   s    zInfinityType.__eq__c                 C  s   t |t|  S r   r%   r"   r   r   r   __ne__)   s    zInfinityType.__ne__c                 C  s   dS NTr   r"   r   r   r   __gt__,   s    zInfinityType.__gt__c                 C  s   dS r*   r   r"   r   r   r   __ge__/   s    zInfinityType.__ge__NegativeInfinityTyper   r   c                 C  s   t S r   )NegativeInfinityr   r   r   r   __neg__2   s    zInfinityType.__neg__N__name__
__module____qualname__r   r   r#   r$   r(   r)   r+   r,   r0   r   r   r   r   r      s   r   c                   @  s   e Zd ZddddZddddZdd	d
ddZdd	d
ddZdd	d
ddZdd	d
ddZdd	d
ddZ	dd	d
ddZ
dddddZdS )r-   r   r   c                 C  s   dS )Nz	-Infinityr   r   r   r   r   r   :   s    zNegativeInfinityType.__repr__r   c                 C  s   t t| S r   r   r   r   r   r   r   =   s    zNegativeInfinityType.__hash__r   r   r   c                 C  s   dS r*   r   r"   r   r   r   r#   @   s    zNegativeInfinityType.__lt__c                 C  s   dS r*   r   r"   r   r   r   r$   C   s    zNegativeInfinityType.__le__c                 C  s   t |t| S r   r%   r"   r   r   r   r(   F   s    zNegativeInfinityType.__eq__c                 C  s   t |t|  S r   r%   r"   r   r   r   r)   I   s    zNegativeInfinityType.__ne__c                 C  s   dS r!   r   r"   r   r   r   r+   L   s    zNegativeInfinityType.__gt__c                 C  s   dS r!   r   r"   r   r   r   r,   O   s    zNegativeInfinityType.__ge__r   r.   c                 C  s   t S r   )r   r   r   r   r   r0   R   s    zNegativeInfinityType.__neg__Nr1   r   r   r   r   r-   9   s   r-   ._Version)epochreleasedevprepostlocalr   zLegacyVersion | Versionversionr   c                 C  s*   z
t | W S  ty$   t|  Y S 0 dS )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.
    N)r	   r   r
   )r=   r   r   r   r   t   s    
r   c                   @  s   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)r2   r3   r4   __doc__r   r   r   r   r      s   r   c                   @  s   e Zd ZU ded< ddddZd ddd	d
Zd ddddZdddddZd ddddZd ddddZ	dddddZ
dS )_BaseVersionzCmpKey | LegacyCmpKey_keyr   r   c                 C  s
   t | jS r   )r   r@   r   r   r   r   r      s    z_BaseVersion.__hash__r   r   c                 C  s   t |tstS | j|jk S r   r&   r?   NotImplementedr@   r"   r   r   r   r#      s    
z_BaseVersion.__lt__c                 C  s   t |tstS | j|jkS r   rA   r"   r   r   r   r$      s    
z_BaseVersion.__le__r   c                 C  s   t |tstS | j|jkS r   rA   r"   r   r   r   r(      s    
z_BaseVersion.__eq__c                 C  s   t |tstS | j|jkS r   rA   r"   r   r   r   r,      s    
z_BaseVersion.__ge__c                 C  s   t |tstS | j|jkS r   rA   r"   r   r   r   r+      s    
z_BaseVersion.__gt__c                 C  s   t |tstS | j|jkS r   rA   r"   r   r   r   r)      s    
z_BaseVersion.__ne__N)r2   r3   r4   __annotations__r   r#   r$   r(   r,   r+   r)   r   r   r   r   r?      s   
r?   c                   @  s   e Zd ZdddddZddddZddd	d
ZeddddZeddddZeddddZ	eddddZ
eddddZeddddZeddddZeddddZeddddZedddd Zeddd!d"Zd#S )$r
   r   Noner<   c                 C  s&   t || _t| j| _t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   r=   r   r   r   __init__   s    
zLegacyVersion.__init__r   c                 C  s   | j S r   rE   r   r   r   r   __str__   s    zLegacyVersion.__str__c                 C  s   d|  dS )Nz<LegacyVersion('')>r   r   r   r   r   r      s    zLegacyVersion.__repr__c                 C  s   | j S r   rK   r   r   r   r   public   s    zLegacyVersion.publicc                 C  s   | j S r   rK   r   r   r   r   base_version   s    zLegacyVersion.base_versionr   c                 C  s   dS )Nr   r   r   r   r   r6      s    zLegacyVersion.epochc                 C  s   d S r   r   r   r   r   r   r7      s    zLegacyVersion.releasec                 C  s   d S r   r   r   r   r   r   r9      s    zLegacyVersion.prec                 C  s   d S r   r   r   r   r   r   r:      s    zLegacyVersion.postc                 C  s   d S r   r   r   r   r   r   r8      s    zLegacyVersion.devc                 C  s   d S r   r   r   r   r   r   r;      s    zLegacyVersion.localr   c                 C  s   dS r!   r   r   r   r   r   is_prerelease   s    zLegacyVersion.is_prereleasec                 C  s   dS r!   r   r   r   r   r   is_postrelease   s    zLegacyVersion.is_postreleasec                 C  s   dS r!   r   r   r   r   r   is_devrelease   s    zLegacyVersion.is_devreleaseN)r2   r3   r4   rJ   rL   r   propertyrN   rO   r6   r7   r9   r:   r8   r;   rQ   rR   rS   r   r   r   r   r
      s2   
r
   z(\d+ | [a-z]+ | \.| -)czfinal-@)r9   preview-rcr8   zIterator[str])sr   c                 c  s\   t | D ]F}t||}|r
|dkr(q
|d d dv rF|dV  q
d| V  q
dV  d S )N.   
0123456789   **final)_legacy_version_component_resplit_legacy_version_replacement_mapgetzfill)rZ   partZmapped_partr   r   r   _parse_version_parts  s    rg   LegacyCmpKeyc                 C  sv   d}g }t |  D ]T}|dr^|dk rD|rD|d dkrD|  q*|r^|d dkr^|  qD|| q|t|fS )NrP   r_   r`   z*final-Z00000000)rg   lower
startswithpopappendtuple)r=   r6   partsrf   r   r   r   rF     s    


rF   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                   @  sP  e Zd Zede d ejejB ZdddddZ	ddd	d
Z
ddddZeddddZeddddZeddddZeddddZeddddZeddddZeddddZeddd d!Zed"dd#d$Zed"dd%d&Zed"dd'd(Zeddd)d*Zeddd+d,Zeddd-d.Zd/S )0r	   z^\s*z\s*$r   rD   r<   c              
   C  s   | j |}|s td| dt|dr:t|dndtdd |ddD t|d	|d
t|d|dp|dt|d|dt	|dd| _
t| j
j| j
j| j
j| j
j| j
j| j
j| _d S )NzInvalid version: ''r6   r   c                 s  s   | ]}t |V  qd S r   )r   .0ir   r   r   	<genexpr>\      z#Version.__init__.<locals>.<genexpr>r7   r[   pre_lpre_npost_lpost_n1post_n2dev_ldev_nr;   )r6   r7   r9   r:   r8   r;   )_regexsearchr   r5   groupr   rm   rb   _parse_letter_version_parse_local_versionrE   _cmpkeyr6   r7   r9   r:   r8   r;   r@   )r   r=   matchr   r   r   rJ   S  s*    zVersion.__init__r   c                 C  s   d|  dS )Nz
<Version('rM   r   r   r   r   r   r   o  s    zVersion.__repr__c                 C  s   g }| j dkr || j  d |ddd | jD  | jd urb|ddd | jD  | jd ur~|d| j  | jd ur|d	| j  | jd ur|d
| j  d|S )Nr   !r[   c                 S  s   g | ]}t |qS r   r   rq   xr   r   r   
<listcomp>z  rt   z#Version.__str__.<locals>.<listcomp> c                 S  s   g | ]}t |qS r   r   r   r   r   r   r   ~  rt   z.postz.dev+)r6   rl   joinr7   r9   r:   r8   r;   r   rn   r   r   r   rL   r  s    




zVersion.__str__r   c                 C  s   | j j}|S r   )rE   r6   )r   _epochr   r   r   r6     s    zVersion.epochtuple[int, ...]c                 C  s   | j j}|S r   )rE   r7   )r   _releaser   r   r   r7     s    zVersion.releasetuple[str, int] | Nonec                 C  s   | j j}|S r   )rE   r9   )r   _prer   r   r   r9     s    zVersion.prez
int | Nonec                 C  s   | j jr| j jd S d S Nr\   )rE   r:   r   r   r   r   r:     s    zVersion.postc                 C  s   | j jr| j jd S d S r   )rE   r8   r   r   r   r   r8     s    zVersion.devz
str | Nonec                 C  s(   | j jr ddd | j jD S d S d S )Nr[   c                 S  s   g | ]}t |qS r   r   r   r   r   r   r     rt   z!Version.local.<locals>.<listcomp>)rE   r;   r   r   r   r   r   r;     s    zVersion.localc                 C  s   t | ddd S )Nr   r\   r   )r   rb   r   r   r   r   rN     s    zVersion.publicc                 C  sF   g }| j dkr || j  d |ddd | jD  d|S )Nr   r   r[   c                 S  s   g | ]}t |qS r   r   r   r   r   r   r     rt   z(Version.base_version.<locals>.<listcomp>r   )r6   rl   r   r7   r   r   r   r   rO     s
    
zVersion.base_versionr   c                 C  s   | j d up| jd uS r   )r8   r9   r   r   r   r   rQ     s    zVersion.is_prereleasec                 C  s
   | j d uS r   )r:   r   r   r   r   rR     s    zVersion.is_postreleasec                 C  s
   | j d uS r   )r8   r   r   r   r   rS     s    zVersion.is_devreleasec                 C  s   t | jdkr| jd S dS )Nr\   r   lenr7   r   r   r   r   major  s    zVersion.majorc                 C  s   t | jdkr| jd S dS )N   r\   r   r   r   r   r   r   minor  s    zVersion.minorc                 C  s   t | jdkr| jd S dS )N   r   r   r   r   r   r   r   micro  s    zVersion.microN)r2   r3   r4   recompiler   VERBOSE
IGNORECASEr|   rJ   r   rL   rT   r6   r7   r9   r:   r8   r;   rN   rO   rQ   rR   rS   r   r   r   r   r   r   r   r	   P  s@   r	   zstr | bytes | SupportsIntr   )letternumberr   c                 C  sv   | rZ|d u rd}|   } | dkr&d} n(| dkr4d} n| dv rBd} n| dv rNd	} | t|fS | sr|rrd	} | t|fS d S )
Nr   alphaabetab)rU   r9   rW   rY   )revrr:   )ri   r   )r   r   r   r   r   r     s"    r   z[\._-]zLocalType | None)r;   r   c                 C  s$   | dur t dd t| D S dS )zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Nc                 s  s&   | ]}|  s| nt|V  qd S r   )isdigitri   r   )rq   rf   r   r   r   rs     s   z'_parse_local_version.<locals>.<genexpr>)rm   _local_version_separatorsrb   )r;   r   r   r   r     s
    r   r   r   ztuple[SubLocalType] | NoneCmpKey)r6   r7   r9   r:   r8   r;   r   c                 C  s   t tttdd t|}|d u r>|d u r>|d ur>t}n|d u rLt}n|}|d u r^t}n|}|d u rpt}	n|}	|d u rt}
nt dd |D }
| ||||	|
fS )Nc                 S  s   | dkS )Nr   r   )r   r   r   r   <lambda>  rt   z_cmpkey.<locals>.<lambda>c                 s  s(   | ] }t |tr|d fnt|fV  qdS )r   N)r&   r   r/   rp   r   r   r   rs   ?  s   z_cmpkey.<locals>.<genexpr>)rm   reversedlist	itertools	dropwhiler/   r   )r6   r7   r9   r:   r8   r;   r   r   _post_dev_localr   r   r   r     s(    	r   )0
__future__r   collectionscollections.abcr   r   r   typingr   r   r   r   rG   __all__r   r   r-   r/   ZInfiniteTypesrm   r   r   ZPrePostDevTypeZSubLocalType	LocalTyper   rh   r   VersionComparisonMethod
namedtupler5   r   
ValueErrorr   r?   r
   r   r   ra   rc   rg   rF   r   r	   r   r   r   r   r   r   r   r   <module>   st   

.>	  #
