a
    pÝEbb?  ã                	   @  s  d dl m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
 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.d/„Z,d0d1d'd'd'd2d3d4œd5d6„Z-dS )7é    )ÚannotationsN)ÚCallableÚIteratorÚ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   ú\/home/ja/django-apps/lartica_env/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__0   s    zInfinityType.__ge__ÚNegativeInfinityType©r   r   c                 C  s   t S r   )ÚNegativeInfinityr   r   r   r   Ú__neg__3   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#   A   s    zNegativeInfinityType.__lt__c                 C  s   dS r*   r   r"   r   r   r   r$   D   s    zNegativeInfinityType.__le__c                 C  s   t |t| ƒƒS r   r%   r"   r   r   r   r(   G   s    zNegativeInfinityType.__eq__c                 C  s   t |t| ƒƒ S r   r%   r"   r   r   r   r)   J   s    zNegativeInfinityType.__ne__c                 C  s   dS r!   r   r"   r   r   r   r+   M   s    zNegativeInfinityType.__gt__c                 C  s   dS r!   r   r"   r   r   r   r,   P   s    zNegativeInfinityType.__ge__r   r.   c                 C  s   t S r   )r   r   r   r   r   r0   S   s    zNegativeInfinityType.__neg__Nr1   r   r   r   r   r-   :   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   u   s    
r   c                   @  s   e Zd ZdZdS )r   zF
    An invalid version was found, users should refer to PEP 440.
    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 )Néÿÿÿÿr   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   Ú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-Ú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  ó    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   rn   rb   Ú_parse_letter_versionÚ_parse_local_versionrE   Ú_cmpkeyr6   r7   r9   r:   r8   r;   r@   )r   r=   Úmatchr   r   r   rJ   P  s*    ÿøúzVersion.__init__r   c                 C  s   d| › d�S )Nz
<Version('rM   r   r   r   r   r   r   m  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   ©rr   Úxr   r   r   Ú
<listcomp>x  ru   z#Version.__str__.<locals>.<listcomp>Ú c                 S  s   g | ]}t |ƒ‘qS r   r…   r†   r   r   r   rˆ   |  ru   z.postz.devú+)r6   rm   Újoinr7   r9   r:   r8   r;   ©r   ro   r   r   r   rL   p  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ˆ   ¦  ru   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ˆ   ·  ru   z(Version.base_version.<locals>.<listcomp>r‰   )r6   rm   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	   L  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:   )rj   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   )Úisdigitrj   r   )rr   rf   r   r   r   rt      s   ÿz'_parse_local_version.<locals>.<genexpr>)rn   Ú_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 r‚t}
nt dd„ |D ƒƒ}
| ||||	|
fS )Nc                 S  s   | dkS )Nr   r   )r‡   r   r   r   Ú<lambda>  ru   z_cmpkey.<locals>.<lambda>c                 s  s(   | ] }t |tƒr|d fnt|fV  qdS )r‰   N)r&   r   r/   rq   r   r   r   rt   ?  s   z_cmpkey.<locals>.<genexpr>)rn   ÚreversedÚlistÚ	itertoolsÚ	dropwhiler/   r   )r6   r7   r9   r:   r8   r;   r�   r‘   Ú_postÚ_devÚ_localr   r   r   r‚     s(    ÿ	ÿr‚   ).Ú
__future__r   Úcollectionsr¬   rš   Útypingr   r   r   r   r   rG   Ú__all__r   r   r-   r/   ÚInfiniteTypesr   r   ÚPrePostDevTypeÚ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>	   sr   

þÿûÿÿÿÿÿÿ.>û	  	$
