a
    hbòfn<  ã                	   @   sæ  d dl mZmZmZ d dlZd dlZd dlZddlmZm	Z	 ddl
mZ e�r.d dlmZmZmZmZmZmZmZ ddlmZm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g d	¢Z e !d
g d¢¡Z"dd„ Z#G dd„ de$ƒZ%G dd„ de&ƒZ'G dd„ de'ƒZ(e )dej*¡Z+ddddddœZ,dd„ Z-dd„ Z.dZ/G dd„ de'ƒZ0d d!„ Z1e )d"¡Z2d#d$„ Z3d%d&„ Z4dS )'é    )Úabsolute_importÚdivisionÚprint_functionNé   )ÚInfinityÚNegativeInfinity)ÚTYPE_CHECKING)ÚCallableÚIteratorÚListÚOptionalÚSupportsIntÚTupleÚUnion)ÚInfinityTypeÚNegativeInfinityType.)ÚparseÚVersionÚLegacyVersionÚInvalidVersionÚVERSION_PATTERNÚ_Version)ÚepochÚreleaseÚdevÚpreÚpostÚlocalc                 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   )Úversion© r   úa/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/setuptools/_vendor/packaging/version.pyr   0   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   =   s   r   c                   @   sP   e Zd 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S )Ú_BaseVersionNc                 C   s
   t | jƒS ©N)ÚhashÚ_key©Úselfr   r   r    Ú__hash__F   s    z_BaseVersion.__hash__c                 C   s   |   |dd„ ¡S )Nc                 S   s   | |k S r&   r   ©ÚsÚor   r   r    Ú<lambda>L   ó    z%_BaseVersion.__lt__.<locals>.<lambda>©Ú_compare©r*   Úotherr   r   r    Ú__lt__J   s    z_BaseVersion.__lt__c                 C   s   |   |dd„ ¡S )Nc                 S   s   | |kS r&   r   r,   r   r   r    r/   P   r0   z%_BaseVersion.__le__.<locals>.<lambda>r1   r3   r   r   r    Ú__le__N   s    z_BaseVersion.__le__c                 C   s   |   |dd„ ¡S )Nc                 S   s   | |kS r&   r   r,   r   r   r    r/   T   r0   z%_BaseVersion.__eq__.<locals>.<lambda>r1   r3   r   r   r    Ú__eq__R   s    z_BaseVersion.__eq__c                 C   s   |   |dd„ ¡S )Nc                 S   s   | |kS r&   r   r,   r   r   r    r/   X   r0   z%_BaseVersion.__ge__.<locals>.<lambda>r1   r3   r   r   r    Ú__ge__V   s    z_BaseVersion.__ge__c                 C   s   |   |dd„ ¡S )Nc                 S   s   | |kS r&   r   r,   r   r   r    r/   \   r0   z%_BaseVersion.__gt__.<locals>.<lambda>r1   r3   r   r   r    Ú__gt__Z   s    z_BaseVersion.__gt__c                 C   s   |   |dd„ ¡S )Nc                 S   s   | |kS r&   r   r,   r   r   r    r/   `   r0   z%_BaseVersion.__ne__.<locals>.<lambda>r1   r3   r   r   r    Ú__ne__^   s    z_BaseVersion.__ne__c                 C   s   t |tƒstS || j|jƒS r&   )Ú
isinstancer%   ÚNotImplementedr(   )r*   r4   Úmethodr   r   r    r2   b   s    
z_BaseVersion._compare)r!   r"   r#   r(   r+   r5   r6   r7   r8   r9   r:   r2   r   r   r   r    r%   C   s   r%   c                   @   s¨   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   c                 C   s   t |ƒ| _t| jƒ| _d S r&   )ÚstrÚ_versionÚ_legacy_cmpkeyr(   )r*   r   r   r   r    Ú__init__k   s    
zLegacyVersion.__init__c                 C   s   | j S r&   ©r?   r)   r   r   r    Ú__str__p   s    zLegacyVersion.__str__c                 C   s   d  tt| ƒƒ¡S )Nz<LegacyVersion({0})>©ÚformatÚreprr>   r)   r   r   r    Ú__repr__t   s    zLegacyVersion.__repr__c                 C   s   | j S r&   rB   r)   r   r   r    Úpublicx   s    zLegacyVersion.publicc                 C   s   | j S r&   rB   r)   r   r   r    Úbase_version}   s    zLegacyVersion.base_versionc                 C   s   dS )Néÿÿÿÿr   r)   r   r   r    r   ‚   s    zLegacyVersion.epochc                 C   s   d S r&   r   r)   r   r   r    r   ‡   s    zLegacyVersion.releasec                 C   s   d S r&   r   r)   r   r   r    r   Œ   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    r   –   s    zLegacyVersion.devc                 C   s   d S r&   r   r)   r   r   r    r   ›   s    zLegacyVersion.localc                 C   s   dS ©NFr   r)   r   r   r    Úis_prerelease    s    zLegacyVersion.is_prereleasec                 C   s   dS rK   r   r)   r   r   r    Úis_postrelease¥   s    zLegacyVersion.is_postreleasec                 C   s   dS rK   r   r)   r   r   r    Úis_devreleaseª   s    zLegacyVersion.is_devreleaseN)r!   r"   r#   rA   rC   rG   ÚpropertyrH   rI   r   r   r   r   r   r   rL   rM   rN   r   r   r   r    r   j   s2   









r   z(\d+ | [a-z]+ | \.| -)Úczfinal-ú@)r   Úpreviewú-Úrcr   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Ú.r   Ú
0123456789é   Ú*ú*final)Ú_legacy_version_component_reÚsplitÚ_legacy_version_replacement_mapÚgetÚzfill)r-   Úpartr   r   r    Ú_parse_version_parts»   s    r`   c                 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 )NrJ   rX   rY   z*final-Ú00000000)r`   ÚlowerÚ
startswithÚpopÚappendÚtuple)r   r   Úpartsr_   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                   @   sè   e Zd Ze de d ejejB ¡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*$c              
   C   sà   | j  |¡}|std |¡ƒ‚t| d¡r8t| 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: '{0}'r   r   c                 s   s   | ]}t |ƒV  qd S r&   )Úint©Ú.0Úir   r   r    Ú	<genexpr>  r0   z#Version.__init__.<locals>.<genexpr>r   rU   Úpre_lÚpre_nÚpost_lÚpost_n1Úpost_n2Údev_lÚdev_nr   )r   r   r   r   r   r   )Ú_regexÚsearchr   rE   r   Úgrouprh   rf   r[   Ú_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   s   d  tt| ƒƒ¡S )Nz<Version({0})>rD   r)   r   r   r    rG   -  s    zVersion.__repr__c                 C   sÀ   g }| j dkr | d | j ¡¡ | 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   ú{0}!rU   c                 s   s   | ]}t |ƒV  qd S r&   ©r>   ©rj   Úxr   r   r    rl   :  r0   z"Version.__str__.<locals>.<genexpr>Ú c                 s   s   | ]}t |ƒV  qd S r&   r|   r}   r   r   r    rl   >  r0   z.post{0}z.dev{0}z+{0})	r   re   rE   Újoinr   r   r   r   r   ©r*   rg   r   r   r    rC   1  s    




zVersion.__str__c                 C   s   | j j}|S r&   )r?   r   )r*   Ú_epochr   r   r    r   N  s    zVersion.epochc                 C   s   | j j}|S r&   )r?   r   )r*   Ú_releaser   r   r    r   T  s    zVersion.releasec                 C   s   | j j}|S r&   )r?   r   )r*   Ú_prer   r   r    r   Z  s    zVersion.prec                 C   s   | j jr| j jd S d S ©Nr   )r?   r   r)   r   r   r    r   `  s    zVersion.postc                 C   s   | j jr| j jd S d S r…   )r?   r   r)   r   r   r    r   e  s    zVersion.devc                 C   s(   | j jr d dd„ | j jD ƒ¡S d S d S )NrU   c                 s   s   | ]}t |ƒV  qd S r&   r|   r}   r   r   r    rl   n  r0   z Version.local.<locals>.<genexpr>)r?   r   r€   r)   r   r   r    r   j  s    zVersion.localc                 C   s   t | ƒ dd¡d S )Nú+r   r   )r>   r[   r)   r   r   r    rH   r  s    zVersion.publicc                 C   sF   g }| j dkr | d | j ¡¡ | d dd„ | jD ƒ¡¡ d |¡S )Nr   r{   rU   c                 s   s   | ]}t |ƒV  qd S r&   r|   r}   r   r   r    rl   �  r0   z'Version.base_version.<locals>.<genexpr>r   )r   re   rE   r€   r   r�   r   r   r    rI   w  s
    
zVersion.base_versionc                 C   s   | j d up| jd uS r&   )r   r   r)   r   r   r    rL   …  s    zVersion.is_prereleasec                 C   s
   | j d uS r&   )r   r)   r   r   r    rM   Š  s    zVersion.is_postreleasec                 C   s
   | j d uS r&   )r   r)   r   r   r    rN   �  s    zVersion.is_devreleasec                 C   s   t | jƒdkr| jd S dS )Nr   r   ©Úlenr   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)r!   r"   r#   ÚreÚcompiler   ÚVERBOSEÚ
IGNORECASErt   rA   rG   rC   rO   r   r   r   r   r   r   rH   rI   rL   rM   rN   r‰   r‹   r�   r   r   r   r    r     s@   












r   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)rP   r   rR   rT   )ÚrevÚrr   )rb   rh   )ÚletterÚnumberr   r   r    rw   ¤  s"    rw   z[\._-]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&   )Úisdigitrb   rh   )rj   r_   r   r   r    rl   Ó  s   ÿz'_parse_local_version.<locals>.<genexpr>)rf   Ú_local_version_separatorsr[   )r   r   r   r    rx   Í  s
    þrx   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    r/   ê  r0   z_cmpkey.<locals>.<lambda>c                 s   s(   | ] }t |tƒr|d fnt|fV  qdS )r   N)r;   rh   r   ri   r   r   r    rl     s   z_cmpkey.<locals>.<genexpr>)rf   ÚreversedÚlistÚ	itertoolsÚ	dropwhiler   r   )r   r   r   r   r   r   rƒ   r„   Ú_postÚ_devÚ_localr   r   r    ry   Ú  s(    ÿ	ÿry   )5Ú
__future__r   r   r   Úcollectionsrž   rŽ   Ú_structuresr   r   Z_typingr   Útypingr	   r
   r   r   r   r   r   r   r   ÚInfiniteTypesr>   rh   ÚPrePostDevTypeÚSubLocalTypeÚ	LocalTypeÚCmpKeyÚLegacyCmpKeyÚboolÚVersionComparisonMethodÚ__all__Ú
namedtupler   r   Ú
ValueErrorr   Úobjectr%   r   r�   r�   rZ   r\   r`   r@   r   r   rw   r›   rx   ry   r   r   r   r    Ú<module>   sp   $

þÿûÿÿÿÿÿÿ'Fû	  &
