HEX
Server: LiteSpeed
System: Linux br-asc-web1845.main-hosting.eu 5.14.0-611.42.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 24 05:30:20 EDT 2026 x86_64
User: u790421558 (790421558)
PHP: 8.2.30
Disabled: system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/alt/python311/lib/python3.11/site-packages/packaging/__pycache__/version.cpython-311.pyc
�

]�Zg$A�
�,�dZddlmZddlZddlZddlmZmZmZm	Z	m
Z
mZddlm
Z
mZmZmZgd�Ze
eeefdfZeeee
eeffZeee
ee
eefe
eeeefffdffZe
ee
edfeeeefZeeegefZGd	�d
e��Zd+d�ZGd�de��ZGd�d��ZdZeZ 	Gd�de��Z!Gd�de!��Z"d,d�Z#ej$d��Z%d-d!�Z&d.d*�Z'dS)/zB
.. testsetup::

    from packaging.version import parse, Version
�)�annotationsN)�Any�Callable�
NamedTuple�SupportsInt�Tuple�Union�)�Infinity�InfinityType�NegativeInfinity�NegativeInfinityType)�VERSION_PATTERN�InvalidVersion�Version�parse.c�L�eZdZUded<ded<ded<ded<ded<d	ed
<dS)�_Version�int�epoch�tuple[int, ...]�release�tuple[str, int] | None�dev�pre�post�LocalType | None�localN)�__name__�
__module__�__qualname__�__annotations__���D/opt/alt/python311/lib/python3.11/site-packages/packaging/version.pyrr&sW��������J�J�J������������� � � � ������r$r�version�str�returnrc� �t|��S)z�Parse the given version string.

    >>> parse('1.0.dev1')
    <Version('1.0.dev1')>

    :param version: The version string to parse.
    :raises InvalidVersion: When the version string is not a valid version.
    )r)r&s r%rr/s���7���r$c��eZdZdZdS)rz�Raised when a version string is not a valid version.

    >>> Version("invalid")
    Traceback (most recent call last):
        ...
    packaging.version.InvalidVersion: Invalid version: 'invalid'
    N)rr r!�__doc__r#r$r%rr;s���������r$rc�R�eZdZUded<dd�Zdd�Zdd	�Zdd�Zdd�Zdd
�Z	dd�Z
dS)�_BaseVersionztuple[Any, ...]�_keyr(rc�*�t|j��S�N)�hashr.��selfs r%�__hash__z_BaseVersion.__hash__Hs���D�I���r$�other�boolc�Z�t|t��stS|j|jkSr0��
isinstancer-�NotImplementedr.�r3r5s  r%�__lt__z_BaseVersion.__lt__N�)���%��.�.�	"�!�!��y�5�:�%�%r$c�Z�t|t��stS|j|jkSr0r8r;s  r%�__le__z_BaseVersion.__le__T�)���%��.�.�	"�!�!��y�E�J�&�&r$�objectc�Z�t|t��stS|j|jkSr0r8r;s  r%�__eq__z_BaseVersion.__eq__Zr@r$c�Z�t|t��stS|j|jkSr0r8r;s  r%�__ge__z_BaseVersion.__ge__`r@r$c�Z�t|t��stS|j|jkSr0r8r;s  r%�__gt__z_BaseVersion.__gt__fr=r$c�Z�t|t��stS|j|jkSr0r8r;s  r%�__ne__z_BaseVersion.__ne__lr@r$N�r(r)r5r-r(r6)r5rAr(r6)rr r!r"r4r<r?rCrErGrIr#r$r%r-r-Es����������������&�&�&�&�'�'�'�'�'�'�'�'�'�'�'�'�&�&�&�&�'�'�'�'�'�'r$r-a�
    v?
    (?:
        (?:(?P<epoch>[0-9]+)!)?                           # epoch
        (?P<release>[0-9]+(?:\.[0-9]+)*)                  # release segment
        (?P<pre>                                          # pre-release
            [-_\.]?
            (?P<pre_l>alpha|a|beta|b|preview|pre|c|rc)
            [-_\.]?
            (?P<pre_n>[0-9]+)?
        )?
        (?P<post>                                         # post release
            (?:-(?P<post_n1>[0-9]+))
            |
            (?:
                [-_\.]?
                (?P<post_l>post|rev|r)
                [-_\.]?
                (?P<post_n2>[0-9]+)?
            )
        )?
        (?P<dev>                                          # dev release
            [-_\.]?
            (?P<dev_l>dev)
            [-_\.]?
            (?P<dev_n>[0-9]+)?
        )?
    )
    (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))?       # local version
c���eZdZUdZejdezdzejejz��Z	de
d<d"d
�Zd#d�Zd#d�Z
ed$d���Zed%d���Zed&d���Zed'd���Zed'd���Zed(d���Zed#d���Zed#d���Zed)d���Zed)d���Zed)d���Zed$d���Zed$d���Zed$d ���Zd!S)*ra�This class abstracts handling of a project's versions.

    A :class:`Version` instance is comparison aware and can be compared and
    sorted using the standard Python interfaces.

    >>> v1 = Version("1.0a5")
    >>> v2 = Version("1.0")
    >>> v1
    <Version('1.0a5')>
    >>> v2
    <Version('1.0')>
    >>> v1 < v2
    True
    >>> v1 == v2
    False
    >>> v1 > v2
    False
    >>> v1 >= v2
    False
    >>> v1 <= v2
    True
    z^\s*z\s*$�CmpKeyr.r&r'r(�Nonec���|j�|��}|std|�����t|�d��r"t|�d����ndt
d�|�d���d��D����t|�d��|�d����t|�d	��|�d
��p|�d����t|�d��|�d
����t|�d�������|_
t|j
j|j
j
|j
j|j
j|j
j|j
j��|_dS)aCInitialize a Version object.

        :param version:
            The string representation of a version which will be parsed and normalized
            before use.
        :raises InvalidVersion:
            If the ``version`` does not conform to PEP 440 in any way then this
            exception will be raised.
        zInvalid version: rrc3�4K�|]}t|��V��dSr0)r��.0�is  r%�	<genexpr>z#Version.__init__.<locals>.<genexpr>�s(����L�L�Q�#�a�&�&�L�L�L�L�L�Lr$r�.�pre_l�pre_n�post_l�post_n1�post_n2�dev_l�dev_nr)rrrrrrN)�_regex�searchrr�groupr�tuple�split�_parse_letter_version�_parse_local_version�_version�_cmpkeyrrrrrrr.)r3r&�matchs   r%�__init__zVersion.__init__�s�����"�"�7�+�+���	B� �!@�W�!@�!@�A�A�A�!�/4�{�{�7�/C�/C�J�#�e�k�k�'�*�*�+�+�+���L�L�%�+�+�i�*@�*@�*F�*F�s�*K�*K�L�L�L�L�L�%�e�k�k�'�&:�&:�E�K�K��<P�<P�Q�Q�&����H�%�%�u�{�{�9�'=�'=�'W����Y�AW�AW���&�e�k�k�'�&:�&:�E�K�K��<P�<P�Q�Q�&�u�{�{�7�';�';�<�<�	
�	
�	
��
���M���M�!��M���M���M���M��

�
��	�	�	r$c��d|�d�S)z�A representation of the Version that shows all internal state.

        >>> Version('1.0.0')
        <Version('1.0.0')>
        z
<Version('z')>r#r2s r%�__repr__zVersion.__repr__�s��&�D�%�%�%�%r$c�B�g}|jdkr|�|j�d���|�d�d�|jD������|j�7|�d�d�|jD������|j�|�d|j����|j�|�d	|j����|j�|�d
|j����d�|��S)z}A string representation of the version that can be round-tripped.

        >>> str(Version("1.0a5"))
        '1.0a5'
        r�!rTc3�4K�|]}t|��V��dSr0�r'�rQ�xs  r%rSz"Version.__str__.<locals>.<genexpr>��(����;�;��c�!�f�f�;�;�;�;�;�;r$N�c3�4K�|]}t|��V��dSr0rlrms  r%rSz"Version.__str__.<locals>.<genexpr>�s(���� :� :�A��Q��� :� :� :� :� :� :r$z.postz.dev�+)r�append�joinrrrrr�r3�partss  r%�__str__zVersion.__str__�s"�����:��?�?��L�L�D�J�)�)�)�*�*�*�	���S�X�X�;�;�d�l�;�;�;�;�;�<�<�<��8���L�L���� :� :��� :� :� :�:�:�;�;�;��9� ��L�L�,���,�,�-�-�-��8���L�L�*���*�*�+�+�+��:�!��L�L�)�T�Z�)�)�*�*�*��w�w�u�~�~�r$rc��|jjS)zThe epoch of the version.

        >>> Version("2.0.0").epoch
        0
        >>> Version("1!2.0.0").epoch
        1
        )rcrr2s r%rz
Version.epochs���}�"�"r$rc��|jjS)adThe components of the "release" segment of the version.

        >>> Version("1.2.3").release
        (1, 2, 3)
        >>> Version("2.0.0").release
        (2, 0, 0)
        >>> Version("1!2.0.0.post0").release
        (2, 0, 0)

        Includes trailing zeroes but not the epoch or any pre-release / development /
        post-release suffixes.
        )rcrr2s r%rzVersion.releases���}�$�$r$rc��|jjS)aThe pre-release segment of the version.

        >>> print(Version("1.2.3").pre)
        None
        >>> Version("1.2.3a1").pre
        ('a', 1)
        >>> Version("1.2.3b1").pre
        ('b', 1)
        >>> Version("1.2.3rc1").pre
        ('rc', 1)
        )rcrr2s r%rzVersion.pre&s���}� � r$�
int | Nonec�B�|jjr|jjdndS)z�The post-release number of the version.

        >>> print(Version("1.2.3").post)
        None
        >>> Version("1.2.3.post1").post
        1
        r
N)rcrr2s r%rzVersion.post5s#��)-�
�(:�D�t�}�!�!�$�$��Dr$c�B�|jjr|jjdndS)z�The development number of the version.

        >>> print(Version("1.2.3").dev)
        None
        >>> Version("1.2.3.dev1").dev
        1
        r
N)rcrr2s r%rzVersion.dev@s#��(,�}�'8�B�t�}� ��#�#�d�Br$�
str | Nonec�p�|jjr)d�d�|jjD����SdS)z�The local version segment of the version.

        >>> print(Version("1.2.3").local)
        None
        >>> Version("1.2.3+abc").local
        'abc'
        rTc3�4K�|]}t|��V��dSr0rlrms  r%rSz Version.local.<locals>.<genexpr>Us(����@�@�q�C��F�F�@�@�@�@�@�@r$N)rcrrtr2s r%rz
Version.localKs<���=��	��8�8�@�@�D�M�,?�@�@�@�@�@�@��4r$c�T�t|���dd��dS)z�The public portion of the version.

        >>> Version("1.2.3").public
        '1.2.3'
        >>> Version("1.2.3+abc").public
        '1.2.3'
        >>> Version("1!1.2.3dev1+abc").public
        '1!1.2.3.dev1'
        rrr
r)r'r`r2s r%�publiczVersion.publicYs#���4�y�y���s�A�&�&�q�)�)r$c���g}|jdkr|�|j�d���|�d�d�|jD������d�|��S)a\The "base version" of the version.

        >>> Version("1.2.3").base_version
        '1.2.3'
        >>> Version("1.2.3+abc").base_version
        '1.2.3'
        >>> Version("1!1.2.3dev1+abc").base_version
        '1!1.2.3'

        The "base version" is the public version of the project without any pre or post
        release markers.
        rrjrTc3�4K�|]}t|��V��dSr0rlrms  r%rSz'Version.base_version.<locals>.<genexpr>{ror$rp)rrsrtrrus  r%�base_versionzVersion.base_versionfst�����:��?�?��L�L�D�J�)�)�)�*�*�*�	���S�X�X�;�;�d�l�;�;�;�;�;�<�<�<��w�w�u�~�~�r$r6c�&�|jdup|jduS)aTWhether this version is a pre-release.

        >>> Version("1.2.3").is_prerelease
        False
        >>> Version("1.2.3a1").is_prerelease
        True
        >>> Version("1.2.3b1").is_prerelease
        True
        >>> Version("1.2.3rc1").is_prerelease
        True
        >>> Version("1.2.3dev1").is_prerelease
        True
        N)rrr2s r%�
is_prereleasezVersion.is_prereleases���x�t�#�;�t�x�t�';�;r$c��|jduS)z�Whether this version is a post-release.

        >>> Version("1.2.3").is_postrelease
        False
        >>> Version("1.2.3.post1").is_postrelease
        True
        N)rr2s r%�is_postreleasezVersion.is_postrelease�s���y��$�$r$c��|jduS)z�Whether this version is a development release.

        >>> Version("1.2.3").is_devrelease
        False
        >>> Version("1.2.3.dev1").is_devrelease
        True
        N)rr2s r%�
is_devreleasezVersion.is_devrelease�s���x�t�#�#r$c�P�t|j��dkr
|jdndS)zqThe first item of :attr:`release` or ``0`` if unavailable.

        >>> Version("1.2.3").major
        1
        r
r��lenrr2s r%�majorz
Version.major�s(��#&�d�l�"3�"3�q�"8�"8�t�|�A���a�?r$c�P�t|j��dkr
|jdndS)z�The second item of :attr:`release` or ``0`` if unavailable.

        >>> Version("1.2.3").minor
        2
        >>> Version("1").minor
        0
        �r
rr�r2s r%�minorz
Version.minor��(��#&�d�l�"3�"3�q�"8�"8�t�|�A���a�?r$c�P�t|j��dkr
|jdndS)z�The third item of :attr:`release` or ``0`` if unavailable.

        >>> Version("1.2.3").micro
        3
        >>> Version("1").micro
        0
        �r�rr�r2s r%�microz
Version.micro�r�r$N)r&r'r(rM)r(r'rJ�r(r)r(r)r(r{)r(r~)r(r6)rr r!r+�re�compiler�VERBOSE�
IGNORECASEr\r"rfrhrw�propertyrrrrrrr�r�r�r�r�r�r�r�r#r$r%rr�se���������.�R�Z��/�1�G�;�R�Z�"�-�=W�
X�
X�F��L�L�L�$
�$
�$
�$
�L&�&�&�&�����B�#�#�#��X�#��
%�
%�
%��X�
%��!�!�!��X�!��E�E�E��X�E��C�C�C��X�C������X���
*�
*�
*��X�
*������X��0�<�<�<��X�<� �%�%�%��X�%��$�$�$��X�$��@�@�@��X�@��@�@�@��X�@��@�@�@��X�@�@�@r$c�0��eZdZed�fd���Z�xZS)�_TrimmedReleaser(rc���t��j}d�t|��D��}t|d���}|d|dz�S)z�
        Release segment without any trailing zeros.

        >>> _TrimmedRelease('1.0.0').release
        (1,)
        >>> _TrimmedRelease('0.0').release
        (0,)
        c3�$K�|]\}}|�|V��dSr0r#)rQ�index�vals   r%rSz*_TrimmedRelease.release.<locals>.<genexpr>�s+����B�B�j�e�S�c�B�E�B�B�B�B�B�Br$r)�defaultNr
)�superr�	enumerate�max)r3�rel�nonzeros�last_nonzero�	__class__s    �r%rz_TrimmedRelease.release�sQ����g�g�o��B�B�I�c�N�N�B�B�B���8�Q�/�/�/���%�\�A�%�%�&�&r$r�)rr r!r�r�
__classcell__)r�s@r%r�r��sG�������
�'�'�'�'�'��X�'�'�'�'�'r$r��letterr~�number� str | bytes | SupportsInt | Nonerc���|rH|�d}|���}|dkrd}n|dkrd}n
|dvrd}n|dvrd	}|t|��fS|rJ�|rd	}|t|��fSdS)
Nr�alpha�a�beta�b)�cr�preview�rc)�rev�rr)�lowerr)r�r�s  r%rara�s����#��>��F�������
�W����F�F�
�v�
�
��F�F�
�.�
.�
.��F�F�
�|�
#�
#��F��s�6�{�{�"�"����:�
�#����s�6�{�{�"�"��4r$z[\._-]rrc�l�|�1td�t�|��D����SdS)zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Nc3�K�|];}|���s|���nt|��V��<dSr0)�isdigitr�r)rQ�parts  r%rSz'_parse_local_version.<locals>.<genexpr>sU����
�
��!%�����=�D�J�J�L�L�L�C��I�I�
�
�
�
�
�
r$)r_�_local_version_separatorsr`)rs r%rbrb�sM��
���
�
�1�7�7��>�>�
�
�
�
�
�	
��4r$rrrrrrrrLc�P�ttttjd�t|����������}|�|�
|�t
}n|�t}n|}|�t
}n|}|�t}	n|}	|�t
}
ntd�|D����}
|||||	|
fS)Nc��|dkS)Nrr#)rns r%�<lambda>z_cmpkey.<locals>.<lambda>s
��A��F�r$c3�ZK�|]&}t|t��r|dfnt|fV��'dS)rpN)r9rr
rPs  r%rSz_cmpkey.<locals>.<genexpr>BsP����
�
�IJ�z�!�S�)�)�D�Q��G�G�0@�!�/D�
�
�
�
�
�
r$)r_�reversed�list�	itertools�	dropwhiler
r)rrrrrr�_release�_pre�_post�_dev�_locals           r%rdrds������i�)�*:�*:�H�W�<M�<M�N�N�O�O�P�P���H��{�t�|���"2���

��������|�#3������{�"*������}�/����
�
�NS�
�
�
�
�
���(�D�%��v�5�5r$)r&r'r(r)r�r~r�r�r(r)rr~r(r)rrrrrrrrrrrrr(rL)(r+�
__future__rr�r��typingrrrrrr	�_structuresrrr
r�__all__rr'�	LocalType�CmpPrePostDevType�CmpLocalTyperLr6�VersionComparisonMethodrr�
ValueErrorrr-�_VERSION_PATTERNrrr�rar�r�rbrdr#r$r%�<module>r�s�����#�"�"�"�"�"�����	�	�	�	�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�G�W�W�W�W�W�W�W�W�W�W�W�W�
C�
C�
C���%��S��/�3�&�'�	��,�(<�e�C��H�o�M�N����	�%��c�3�h���';�U�3��8�_�'L�!M�M�
N�PS�
S�T�V���
��	�#�s�(�O������
��#�F�F�#3�T�#9�:�������z����	�	�	�	������Z����+'�+'�+'�+'�+'�+'�+'�+'�`��>#��	�b@�b@�b@�b@�b@�l�b@�b@�b@�J	'�'�'�'�'�g�'�'�'�""�"�"�"�J'�B�J�y�1�1��	�	�	�	�;6�;6�;6�;6�;6�;6r$