B YI~d90�@s:ddlZGdd�d�ZGdd�de�ZGdd�de�ZdS)�Nc@sFeZdZddd�Zdd�Zdd�Zdd �Zd d �Zd d �Zdd�Z dS)�VersionNcCs|r|�|�dS)N)�parse)�self�vstring�r�6/opt/alt/python37/lib64/python3.7/distutils/version.py�__init__&szVersion.__init__cCsd|jjt|�fS)Nz %s ('%s'))� __class__�__name__�str)rrrr�__repr__*szVersion.__repr__cCs|�|�}|tkr|S|dkS)Nr)�_cmp�NotImplemented)r�other�crrr�__eq__-s zVersion.__eq__cCs|�|�}|tkr|S|dkS)Nr)r r)rrrrrr�__lt__3s zVersion.__lt__cCs|�|�}|tkr|S|dkS)Nr)r r)rrrrrr�__le__9s zVersion.__le__cCs|�|�}|tkr|S|dkS)Nr)r r)rrrrrr�__gt__?s zVersion.__gt__cCs|�|�}|tkr|S|dkS)Nr)r r)rrrrrr�__ge__Es zVersion.__ge__)N) r � __module__� __qualname__rr rrrrrrrrrrs rc@s8eZdZe�dejejB�Zdd�Zdd�Z dd�Z dS) � StrictVersionz)^(\d+) \. (\d+) (\. (\d+))? ([ab](\d+))?$cCs�|j�|�}|std|��|�ddddd�\}}}}}|rTttt|||g��|_nttt||g��d|_|r�|dt|�f|_nd|_dS) Nzinvalid version number '%s'�����)rr) � version_re�match� ValueError�group�tuple�map�int�version� prerelease)rrr�major�minorZpatchr&Zprerelease_numrrrr�s  zStrictVersion.parsecCsb|jddkr*d�tt|jdd���}nd�tt|j��}|jr^||jdt|jd�}|S)Nrr�.r)r%�joinr#r r&)rrrrr�__str__�s zStrictVersion.__str__cCs�t|t�rt|�}|j|jkr2|j|jkr.dSdS|jsB|jsBdS|jrR|jsRdS|jsb|jrbdS|jr�|jr�|j|jkr~dS|j|jkr�dSdSndS)N�����rr)� isinstancer rr%r&)rrrrrr �s&         zStrictVersion._cmpN) r rr�re�compile�VERBOSE�ASCIIrrr+r rrrrr]s % rc@sDeZdZe�dej�Zd dd�Zdd�Zdd�Z d d �Z d d �Z dS)� LooseVersionz(\d+ | [a-z]+ | \.)NcCs|r|�|�dS)N)r)rrrrrr.szLooseVersion.__init__c Csb||_dd�|j�|�D�}x:t|�D].\}}yt|�||<Wq&tk rRYq&Xq&W||_dS)NcSsg|]}|r|dkr|�qS)r)r)�.0�xrrr� 8sz&LooseVersion.parse..)r� component_re�split� enumerater$r r%)rrZ components�i�objrrrr3s zLooseVersion.parsecCs|jS)N)r)rrrrr+CszLooseVersion.__str__cCs dt|�S)NzLooseVersion ('%s'))r )rrrrr GszLooseVersion.__repr__cCsFt|t�rt|�}|j|jkr"dS|j|jkr2dS|j|jkrBdSdS)Nrr,r)r-r r2r%)rrrrrr Ks    zLooseVersion._cmp)N) r rrr.r/r0r6rrr+r r rrrrr2 s ! r2)r.rrr2rrrr�s>/