o
    Ëý°jI9  ã                   @   sh  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  dg d¢¡Zd	ed
ed f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ed
ee fdd„Z'd	ed
efdd„Z(dZ)G dd „ d e!ƒZ*d!ed"eee+e	f d
ee
eef  fd#d$„Z,e #d%¡Z-d&ed
ee fd'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.d/„Z/dS )0é    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                 C   s&   zt | ƒW S  ty   t| ƒ Y S 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   )r   © r   úš/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pkg_resources/_vendor/packaging/version.pyr   *   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)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   6   s    r   c                   @   s˜   e Zd ZU eeef ed< defdd„Zdd de	fdd„Z
dd de	fdd	„Zdede	fd
d„Zdd de	fdd„Zdd de	fdd„Zdede	fdd„ZdS )Ú_BaseVersionÚ_keyr   c                 C   s
   t | jƒS ©N)Úhashr#   ©Úselfr   r   r   Ú__hash__?   s   
z_BaseVersion.__hash__Úotherc                 C   s   t |tƒstS | j|jk S r$   ©Ú
isinstancer"   ÚNotImplementedr#   ©r'   r)   r   r   r   Ú__lt__E   ó   
z_BaseVersion.__lt__c                 C   s   t |tƒstS | j|jkS r$   r*   r-   r   r   r   Ú__le__K   r/   z_BaseVersion.__le__c                 C   s   t |tƒstS | j|jkS r$   r*   r-   r   r   r   Ú__eq__Q   r/   z_BaseVersion.__eq__c                 C   s   t |tƒstS | j|jkS r$   r*   r-   r   r   r   Ú__ge__W   r/   z_BaseVersion.__ge__c                 C   s   t |tƒstS | j|jkS r$   r*   r-   r   r   r   Ú__gt__]   r/   z_BaseVersion.__gt__c                 C   s   t |tƒstS | j|jkS r$   r*   r-   r   r   r   Ú__ne__c   r/   z_BaseVersion.__ne__N)r   r   r    r   ÚCmpKeyÚLegacyCmpKeyÚ__annotations__Úintr(   Úboolr.   r0   Úobjectr1   r2   r3   r4   r   r   r   r   r"   <   s   
 r"   c                   @   sì   e Zd Zdeddfdd„Zdefdd„Zdefdd	„Zedefd
d„ƒZedefdd„ƒZ	ede
fdd„ƒZed dd„ƒZed dd„ƒZed dd„ƒZed dd„ƒZed dd„ƒZedefdd„ƒZedefdd„ƒZedefdd„ƒZdS )!r   r   r   Nc                 C   s&   t |ƒ| _t| jƒ| _t dt¡ d S )NzZCreating a LegacyVersion has been deprecated and will be removed in the next major release)ÚstrÚ_versionÚ_legacy_cmpkeyr#   ÚwarningsÚwarnÚDeprecationWarning)r'   r   r   r   r   Ú__init__k   s   
ýzLegacyVersion.__init__c                 C   ó   | j S r$   ©r<   r&   r   r   r   Ú__str__u   s   zLegacyVersion.__str__c                 C   ó   d| › d�S )Nz<LegacyVersion('ú')>r   r&   r   r   r   Ú__repr__x   ó   zLegacyVersion.__repr__c                 C   rB   r$   rC   r&   r   r   r   Úpublic{   ó   zLegacyVersion.publicc                 C   rB   r$   rC   r&   r   r   r   Úbase_version   rJ   zLegacyVersion.base_versionc                 C   ó   dS )Néÿÿÿÿr   r&   r   r   r   r   ƒ   ó   zLegacyVersion.epochc                 C   ó   d S r$   r   r&   r   r   r   r   ‡   rN   zLegacyVersion.releasec                 C   rO   r$   r   r&   r   r   r   r   ‹   rN   zLegacyVersion.prec                 C   rO   r$   r   r&   r   r   r   r   �   rN   zLegacyVersion.postc                 C   rO   r$   r   r&   r   r   r   r   “   rN   zLegacyVersion.devc                 C   rO   r$   r   r&   r   r   r   r   —   rN   zLegacyVersion.localc                 C   rL   ©NFr   r&   r   r   r   Úis_prerelease›   rN   zLegacyVersion.is_prereleasec                 C   rL   rP   r   r&   r   r   r   Úis_postreleaseŸ   rN   zLegacyVersion.is_postreleasec                 C   rL   rP   r   r&   r   r   r   Úis_devrelease£   rN   zLegacyVersion.is_devrelease)r   N)r   r   r    r;   rA   rD   rG   ÚpropertyrI   rK   r8   r   r   r   r   r   r   r9   rQ   rR   rS   r   r   r   r   r   j   s4    
r   z(\d+ | [a-z]+ | \.| -)Úczfinal-ú@)r   Úpreviewú-Úrcr   Úsc                 c   s^   � t  | ¡D ]#}t ||¡}|r|dkrq|d d… dv r$| d¡V  qd| V  qdV  d S )NÚ.r	   Ú
0123456789é   Ú*ú*final)Ú_legacy_version_component_reÚsplitÚ_legacy_version_replacement_mapÚgetÚzfill)rZ   Úpartr   r   r   Ú_parse_version_parts³   s   €
rf   c                 C   s’   d}g }t |  ¡ ƒD ]8}| d¡r=|dk r)|r)|d dkr)| ¡  |r)|d dks|r=|d dkr=| ¡  |r=|d dks1| |¡ q
|t|ƒfS )NrM   r^   r_   z*final-Ú00000000)rf   ÚlowerÚ
startswithÚpopÚappendÚtuple)r   r   Úpartsre   r   r   r   r=   Ä   s   
ÿÿ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                   @   sr  e Zd Ze de d ejejB ¡Zde	ddfdd„Z
de	fdd	„Zde	fd
d„Zedefdd„ƒZedeedf fdd„ƒZedeee	ef  fdd„ƒZedee fdd„ƒZedee fdd„ƒZedee	 fdd„ƒZede	fdd„ƒZede	fdd„ƒZedefdd„ƒZedefdd „ƒZedefd!d"„ƒZedefd#d$„ƒZedefd%d&„ƒZedefd'd(„ƒZdS ))r   z^\s*z\s*$r   r   Nc              
   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¡pD| 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: 'ú'r   r   c                 s   ó   � | ]}t |ƒV  qd S r$   )r8   ©Ú.0Úir   r   r   Ú	<genexpr>  ó   € z#Version.__init__.<locals>.<genexpr>r   r[   Úpre_lÚpre_nÚpost_lÚpost_n1Úpost_n2Údev_lÚdev_nr   )r   r   r   r   r   r   )Ú_regexÚsearchr   r   Úgroupr8   rl   ra   Ú_parse_letter_versionÚ_parse_local_versionr<   Ú_cmpkeyr   r   r   r   r   r   r#   )r'   r   Úmatchr   r   r   rA     s*   ÿø
úzVersion.__init__c                 C   rE   )Nz
<Version('rF   r   r&   r   r   r   rG   "  rH   zVersion.__repr__c                 C   sÀ   g }| j dkr| | j › d�¡ | d dd„ | jD ƒ¡¡ | jd ur1| d dd„ | jD ƒ¡¡ | jd ur?| d| j› �¡ | jd urM| d	| j› �¡ | jd ur[| d
| j› �¡ d |¡S )Nr   ú!r[   c                 s   ro   r$   ©r;   ©rq   Úxr   r   r   rs   -  rt   z"Version.__str__.<locals>.<genexpr>Ú c                 s   ro   r$   r„   r…   r   r   r   rs   1  rt   z.postz.devú+)r   rk   Újoinr   r   r   r   r   ©r'   rm   r   r   r   rD   %  s   





zVersion.__str__c                 C   ó   | j j}|S r$   )r<   r   )r'   Ú_epochr   r   r   r   A  ó   zVersion.epoch.c                 C   r‹   r$   )r<   r   )r'   Ú_releaser   r   r   r   F  r�   zVersion.releasec                 C   r‹   r$   )r<   r   )r'   Ú_prer   r   r   r   K  r�   zVersion.prec                 C   ó   | j jr
| j jd S d S ©Nr	   )r<   r   r&   r   r   r   r   P  ó   zVersion.postc                 C   r�   r‘   )r<   r   r&   r   r   r   r   T  r’   zVersion.devc                 C   s$   | j jrd dd„ | j jD ƒ¡S d S )Nr[   c                 s   ro   r$   r„   r…   r   r   r   rs   [  rt   z Version.local.<locals>.<genexpr>)r<   r   r‰   r&   r   r   r   r   X  s   zVersion.localc                 C   s   t | ƒ dd¡d S )Nrˆ   r	   r   )r;   ra   r&   r   r   r   rI   _  ó   zVersion.publicc                 C   sF   g }| j dkr| | j › d�¡ | d dd„ | jD ƒ¡¡ d |¡S )Nr   rƒ   r[   c                 s   ro   r$   r„   r…   r   r   r   rs   l  rt   z'Version.base_version.<locals>.<genexpr>r‡   )r   rk   r‰   r   rŠ   r   r   r   rK   c  s
   

zVersion.base_versionc                 C   s   | j d up	| jd uS r$   )r   r   r&   r   r   r   rQ   p  r“   zVersion.is_prereleasec                 C   ó
   | j d uS r$   )r   r&   r   r   r   rR   t  ó   
zVersion.is_postreleasec                 C   r”   r$   )r   r&   r   r   r   rS   x  r•   zVersion.is_devreleasec                 C   s   t | jƒdkr| jd S dS )Nr	   r   ©Úlenr   r&   r   r   r   Úmajor|  ó   zVersion.majorc                 C   ó   t | jƒdkr| jd S dS )Né   r	   r   r–   r&   r   r   r   Úminor€  r™   zVersion.minorc                 C   rš   )Né   r›   r   r–   r&   r   r   r   Úmicro„  r™   zVersion.micro) r   r   r    ÚreÚcompiler   ÚVERBOSEÚ
IGNORECASEr|   r;   rA   rG   rD   rT   r8   r   r   r   r   r   r   r   r   rI   rK   r9   rQ   rR   rS   r˜   rœ   rž   r   r   r   r   r     sB    r   ÚletterÚnumberc                 C   sv   | r-|d u rd}|   ¡ } | dkrd} n| dkrd} n| dv r!d} n| dv r'd	} | t|ƒfS | s9|r9d	} | t|ƒfS d S )
Nr   ÚalphaÚaÚbetaÚb)rU   r   rW   rY   )ÚrevÚrr   )rh   r8   )r£   r¤   r   r   r   r   ‰  s"   r   z[\._-]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$   )Úisdigitrh   r8   )rq   re   r   r   r   rs   µ  s
   € ÿ
ÿz'_parse_local_version.<locals>.<genexpr>)rl   Ú_local_version_separatorsra   )r   r   r   r   r€   °  s
   þr€   r   r   r   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 r&t}n|}|d u r/t}n|}|d u r8t}	n|}	|d u rAt}
n	t dd„ |D ƒƒ}
| ||||	|
fS )Nc                 S   s   | dkS )Nr   r   )r†   r   r   r   Ú<lambda>Ë  s    z_cmpkey.<locals>.<lambda>c                 s   s*   � | ]}t |tƒr|d fnt|fV  qdS )r‡   N)r+   r8   r   rp   r   r   r   rs   ô  s   € 
ÿz_cmpkey.<locals>.<genexpr>)rl   ÚreversedÚlistÚ	itertoolsÚ	dropwhiler   r
   )r   r   r   r   r   r   rŽ   r�   Ú_postÚ_devÚ_localr   r   r   r�   ¼  s(   ÿ	ÿr�   )0Úcollectionsr°   rŸ   r>   Útypingr   r   r   r   r   r   r   Ú_structuresr
   r   r   r   Ú__all__ÚInfiniteTypesr;   r8   ÚPrePostDevTypeÚSubLocalTypeÚ	LocalTyper5   r6   r9   ÚVersionComparisonMethodÚ
namedtupler   r   Ú
ValueErrorr   r"   r   r    r¡   r`   rb   rf   r=   r   r   Úbytesr   r¬   r€   r�   r   r   r   r   Ú<module>   s”   $

þÿûÿÿÿÿÿÿ.>û	  	ÿÿ
þ
$ÿ
þýüû
úù