a �DOg�0�@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 �)/usr/lib64/python3.9/distutils/version.py�__init__&szVersion.__init__cCsd|jjt|�fS)Nz %s ('%s'))� __class__�__name__�str�rr r r �__repr__*szVersion.__repr__cCs|�|�}|tur|S|dkS�Nr��_cmp�NotImplemented�r�other�cr r r �__eq__-s zVersion.__eq__cCs|�|�}|tur|S|dkSrrrr r r �__lt__3s zVersion.__lt__cCs|�|�}|tur|S|dkSrrrr r r �__le__9s zVersion.__le__cCs|�|�}|tur|S|dkSrrrr r r �__gt__?s zVersion.__gt__cCs|�|�}|tur|S|dkSrrrr r r �__ge__Es zVersion.__ge__)N) r � __module__� __qualname__r rrrrrrr r r r rs 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_numr r r r�s  � zStrictVersion.parsecCsb|jddkr*d�tt|jdd���}nd�tt|j��}|jr^||jdt|jd�}|S)Nr!r�.r )r,�joinr*rr-rr r r �__str__�s zStrictVersion.__str__cCs�t|t�rt|�}nt|t�s"tS|j|jkrB|j|jkr>dSdS|jsR|jsRdS|jrb|jsbdS|jsr|jrrdS|jr�|jr�|j|jkr�dS|j|jkr�dSdSndS)N�����r r)� isinstancerrrr,r-�rrr r r r�s*           zStrictVersion._cmpN) r rr�re�compile�VERBOSE�ASCIIr%rr2rr r r r r]s % � rc@sDeZdZe�dej�Zd dd�Zdd�Zdd�Z d d �Z d d �Z dS)� LooseVersionz(\d+ | [a-z]+ | \.)NcCs|r|�|�dSrrrr r r r 0szLooseVersion.__init__c Cs\||_dd�|j�|�D�}t|�D],\}}zt|�||<Wq$tyNYq$0q$||_dS)NcSsg|]}|r|dkr|�qS)r0r )�.0�xr r r � :s �z&LooseVersion.parse..)r� component_re�split� enumerater+r'r,)rr� components�i�objr r r r5s zLooseVersion.parsecCs|jSr)rrr r r r2EszLooseVersion.__str__cCs dt|�S)NzLooseVersion ('%s'))rrr r r rIszLooseVersion.__repr__cCsVt|t�rt|�}nt|t�s"tS|j|jkr2dS|j|jkrBdS|j|jkrRdSdS)Nrr3r )r4rr:rr,r5r r r rMs      zLooseVersion._cmp)N) r rrr6r7r8r>r rr2rrr r r r r: s ! r:)r6rrr:r r r r �s>1