o
    MfI9                     @   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   f/var/www/html/analyze/labelStudio/lib/python3.10/site-packages/setuptools/_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 )Nr   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   $

.>	  	

$

