HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //opt/saltstack/salt/lib/python3.10/site-packages/__pycache__/looseversion.cpython-310.pyc
o

�N�g]�@s&dZddlZddlZGdd�d�ZdS)a�Provides classes to represent module version numbers (one class for
each style of version numbering).  There are currently two such classes
implemented: StrictVersion and LooseVersion.

Every version number class implements the following interface:
  * the 'parse' method takes a string and parses it to some internal
    representation; if the string is an invalid version number,
    'parse' raises a ValueError exception
  * the class constructor takes an optional string argument which,
    if supplied, is passed to 'parse'
  * __str__ reconstructs the string that was passed to 'parse' (or
    an equivalent string -- ie. one that will generate an equivalent
    version number instance)
  * __repr__ generates Python code to recreate the version number instance
  * _cmp compares the current instance with either another instance
    of the same class or a string (which will be parsed to an instance
    of the same class, thus must follow the same rules)
�Nc@s|eZdZdZe�dej�Zddd�Zdd�Z	dd	�Z
d
d�Zdd
�Zdd�Z
dd�Zdd�Zdd�Zdd�Zedd��ZdS)�LooseVersiona�Version numbering for anarchists and software realists.
    Implements the standard interface for version number classes as
    described above.  A version number consists of a series of numbers,
    separated by either periods or strings of letters.  When comparing
    version numbers, the numeric components will be compared
    numerically, and the alphabetic components lexically.  The following
    are all valid version numbers, in no particular order:

        1.5.1
        1.5.2b2
        161
        3.10a
        8.02
        3.4j
        1996.07.12
        3.2.pl0
        3.1.1.6
        2g6
        11g
        0.960923
        2.2beta29
        1.13++
        5.5.kw
        2.0b1pl0

    In fact, there is no such thing as an invalid version number under
    this scheme; the rules for comparison are simple and predictable,
    but may not always give the results you want (for some definition
    of "want").
    z(\d+ | [a-z]+ | \.)NcCs|r	|�|�dSdS�N)�parse)�self�vstring�r�@/opt/saltstack/salt/lib/python3.10/site-packages/looseversion.py�__init__|s�zLooseVersion.__init__cCs|�|�}|tur|S|dkS�Nr��_cmp�NotImplemented�r�other�crrr�__eq__��
zLooseVersion.__eq__cCs|�|�}|tur|S|dkSr
rrrrr�__lt__�rzLooseVersion.__lt__cCs|�|�}|tur|S|dkSr
rrrrr�__le__�rzLooseVersion.__le__cCs|�|�}|tur|S|dkSr
rrrrr�__gt__�rzLooseVersion.__gt__cCs|�|�}|tur|S|dkSr
rrrrr�__ge__�rzLooseVersion.__ge__c	CsZ||_dd�|j�|�D�}t|�D]\}}zt|�||<Wqty'Yqw||_dS)NcSsg|]
}|r|dkr|�qS)�.r)�.0�xrrr�
<listcomp>�sz&LooseVersion.parse.<locals>.<listcomp>)r�component_re�split�	enumerate�int�
ValueError�version)rr�
components�i�objrrrr�s�
zLooseVersion.parsecCs|jSr)r�rrrr�__str__�szLooseVersion.__str__cCsdt|�S)NzLooseVersion ('%s'))�strr$rrr�__repr__�szLooseVersion.__repr__cCsJ|�|�}|turtS|j|jkrdS|j|jkrdS|j|jkr#dSdS)Nr����)�_coercer
r )rrrrrr�s
�zLooseVersion._cmpcCslt|t�r|St|t�rt|�Sdtjvr4zddlm}Wnty(tYSwt||�r4tt|��StS)N�	distutilsr)r)�
isinstancerr&�sys�modulesZdistutils.version�ImportErrorr
)rZ
deprecatedrrrr*�s


�
zLooseVersion._coercer)�__name__�
__module__�__qualname__�__doc__�re�compile�VERBOSErr	rrrrrrr%r'r�staticmethodr*rrrrrYs
r)r3r-r4rrrrr�<module>sD