B
    0*\1                 @   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   <C:\ALexclude\prg\programme\Python37\Lib\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kr|S |dkS )Nr   )_cmpNotImplemented)r   othercr   r   r   __eq__-   s    
zVersion.__eq__c             C   s   |  |}|tkr|S |dk S )Nr   )r   r   )r   r   r   r   r   r   __lt__3   s    
zVersion.__lt__c             C   s   |  |}|tkr|S |dkS )Nr   )r   r   )r   r   r   r   r   r   __le__9   s    
zVersion.__le__c             C   s   |  |}|tkr|S |dkS )Nr   )r   r   )r   r   r   r   r   r   __gt__?   s    
zVersion.__gt__c             C   s   |  |}|tkr|S |dkS )Nr   )r   r   )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   r   __str__   s    zStrictVersion.__str__c             C   s   t |trt|}| j|jkr2| j|jk r.dS dS | jsB|jsBdS | jrR|jsRdS | jsb|jrbdS | jr|jr| j|jkr~dS | j|jk rdS dS n d S )Nr   r   )
isinstancer   r   r%   r&   )r   r   r   r   r   r      s&    
zStrictVersion._cmpN)r
   r   r   recompileVERBOSEASCIIr   r   r+   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 )N)r   )r   r   r   r   r   r   .  s    zLooseVersion.__init__c          	   C   sb   || _ dd | j|D }x:t|D ].\}}yt|||< W q& tk
rR   Y q&X q&W || _d S )Nc             S   s   g | ]}|r|d kr|qS )r)   r   ).0xr   r   r   
<listcomp>8  s    z&LooseVersion.parse.<locals>.<listcomp>)r   component_resplit	enumerater$   r    r%   )r   r   Z
componentsiobjr   r   r   r   3  s    
zLooseVersion.parsec             C   s   | j S )N)r   )r   r   r   r   r+   C  s    zLooseVersion.__str__c             C   s   dt |  S )NzLooseVersion ('%s'))r   )r   r   r   r   r   G  s    zLooseVersion.__repr__c             C   sF   t |trt|}| j|jkr"dS | j|jk r2dS | j|jkrBdS d S )Nr   r,   r   )r-   r   r2   r%   )r   r   r   r   r   r   K  s    
zLooseVersion._cmp)N)r
   r   r   r.   r/   r0   r6   r   r   r+   r   r   r   r   r   r   r2     s   !
r2   )r.   r   r   r2   r   r   r   r   <module>   s   > /