a
    åzeâ0  ã                   @   s:   d dl Z G dd„ dƒZG dd„ deƒZG dd„ deƒZdS )é    Nc                   @   sF   e Zd Zddd„Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Z	dS )ÚVersionNc                 C   s   |r|   |¡ d S ©N©Úparse©ÚselfÚvstring© r	   ú'/usr/lib/python3.9/distutils/version.pyÚ__init__&   s    zVersion.__init__c                 C   s   d| j jt| ƒf S )Nz	%s ('%s'))Ú	__class__Ú__name__Ústr©r   r	   r	   r
   Ú__repr__*   s    zVersion.__repr__c                 C   s   |   |¡}|tu r|S |dkS ©Nr   ©Ú_cmpÚNotImplemented©r   ÚotherÚcr	   r	   r
   Ú__eq__-   s    
zVersion.__eq__c                 C   s   |   |¡}|tu r|S |dk S r   r   r   r	   r	   r
   Ú__lt__3   s    
zVersion.__lt__c                 C   s   |   |¡}|tu r|S |dkS r   r   r   r	   r	   r
   Ú__le__9   s    
zVersion.__le__c                 C   s   |   |¡}|tu r|S |dkS r   r   r   r	   r	   r
   Ú__gt__?   s    
zVersion.__gt__c                 C   s   |   |¡}|tu r|S |dkS r   r   r   r	   r	   r
   Ú__ge__E   s    
zVersion.__ge__)N)
r   Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r	   r	   r	   r
   r      s   
r   c                   @   s8   e Zd Ze dejejB ¡Zdd„ Zdd„ Z	dd„ Z
dS )	ÚStrictVersionz)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$c                 C   sŽ   | j  |¡}|std| ƒ‚| ddddd¡\}}}}}|rTttt|||gƒƒ| _nttt||gƒƒd | _|r„|d t|ƒf| _nd | _d S )	Nzinvalid version number '%s'é   é   é   é   é   )r   r   )	Ú
version_reÚmatchÚ
ValueErrorÚgroupÚtupleÚmapÚintÚversionÚ
prerelease)r   r   r&   ÚmajorÚminorZpatchr-   Zprerelease_numr	   r	   r
   r   †   s    ÿzStrictVersion.parsec                 C   sb   | j d dkr*d tt| j dd… ƒ¡}nd tt| j ƒ¡}| jr^|| jd  t| jd ƒ }|S )Nr!   r   Ú.r    )r,   Újoinr*   r   r-   r   r	   r	   r
   Ú__str__™   s    zStrictVersion.__str__c                 C   s¨   t |tƒrt|ƒ}nt |tƒs"tS | j|jkrB| j|jk r>dS dS | jsR|jsRdS | jrb|jsbdS | jsr|jrrdS | jr¤|jr¤| j|jkrŽdS | j|jk rždS dS n d S )Néÿÿÿÿr    r   )Ú
isinstancer   r   r   r,   r-   ©r   r   r	   r	   r
   r   ¦   s*    


zStrictVersion._cmpN)r   r   r   ÚreÚcompileÚVERBOSEÚASCIIr%   r   r2   r   r	   r	   r	   r
   r   ]   s   %
ÿr   c                   @   sD   e Zd Ze dej¡Zddd„Zdd„ Zdd„ Z	d	d
„ Z
dd„ ZdS )ÚLooseVersionz(\d+ | [a-z]+ | \.)Nc                 C   s   |r|   |¡ d S r   r   r   r	   r	   r
   r   0  s    zLooseVersion.__init__c              	   C   s\   || _ dd„ | j |¡D ƒ}t|ƒD ],\}}zt|ƒ||< W q$ tyN   Y q$0 q$|| _d S )Nc                 S   s   g | ]}|r|d kr|‘qS )r0   r	   )Ú.0Úxr	   r	   r
   Ú
<listcomp>:  s   ÿz&LooseVersion.parse.<locals>.<listcomp>)r   Úcomponent_reÚsplitÚ	enumerater+   r'   r,   )r   r   Ú
componentsÚiÚobjr	   r	   r
   r   5  s    zLooseVersion.parsec                 C   s   | j S r   )r   r   r	   r	   r
   r2   E  s    zLooseVersion.__str__c                 C   s   dt | ƒ S )NzLooseVersion ('%s'))r   r   r	   r	   r
   r   I  s    zLooseVersion.__repr__c                 C   sV   t |tƒrt|ƒ}nt |tƒs"tS | j|jkr2dS | j|jk rBdS | j|jkrRdS d S )Nr   r3   r    )r4   r   r:   r   r,   r5   r	   r	   r
   r   M  s    


zLooseVersion._cmp)N)r   r   r   r6   r7   r8   r>   r   r   r2   r   r   r	   r	   r	   r
   r:     s   !
r:   )r6   r   r   r:   r	   r	   r	   r
   Ú<module>   s   > 1