o
     JAf0                     @   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                   @   sH   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      |r	|  | d S d S Nparseselfvstring r
   (/usr/lib/python3.10/distutils/version.py__init__&      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__-      
zVersion.__eq__c                 C   s   |  |}|tu r|S |dk S r   r   r   r
   r
   r   __lt__3   r   zVersion.__lt__c                 C   s   |  |}|tu r|S |dkS r   r   r   r
   r
   r   __le__9   r   zVersion.__le__c                 C   s   |  |}|tu r|S |dkS r   r   r   r
   r
   r   __gt__?   r   zVersion.__gt__c                 C   s   |  |}|tu r|S |dkS r   r   r   r
   r
   r   __ge__E   r   zVersion.__ge__r   )
r   
__module____qualname__r   r   r   r   r   r   r   r
   r
   r
   r   r      s    
r   c                   @   s:   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\}}}}}|r*ttt|||g| _nttt||gd | _|rC|d t|f| _d S 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patchr0   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   r0   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r!| j|jk rdS dS | js)|js)dS | jr1|js1dS | js9|jr9dS | jrQ|jrS| j|jkrGdS | j|jk rOdS dS d S d S )Nr#   r   )
isinstancer   r"   r   r/   r0   r   r   r
   r
   r   r      s*   


zStrictVersion._cmpN)r   r    r!   recompileVERBOSEASCIIr(   r   r5   r   r
   r
   r
   r   r"   ]   s    #
r"   c                   @   sF   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   r   r   r   r   r
   r
   r   r   0  r   zLooseVersion.__init__c              	   C   sZ   || _ dd | j|D }t|D ]\}}zt|||< W q ty'   Y qw || _d S )Nc                 S   s   g | ]
}|r|d kr|qS )r3   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   r5   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rdS | j|jk r!dS | j|jkr)dS d S )Nr   r6   r#   )r7   r   r=   r   r/   r8   r
   r
   r   r   M  s   


zLooseVersion._cmpr   )r   r    r!   r9   r:   r;   rA   r   r   r5   r   r   r
   r
   r
   r   r=     s    
r=   )r9   r   r"   r=   r
   r
   r
   r   <module>   s   	> 1