Current File : //usr/lib/python3/dist-packages/wheel/vendored/packaging/__pycache__/version.cpython-312.pyc
�

C�el?��L�dZddlZddlZddlmZmZmZmZmZm	Z	m
Z
ddlmZm
Z
mZmZgd�Ze	e
eefdfZe
e
ee	eeffZe
ee	e
e	eefe	ee
eefffdffZe	ee	edfeeeefZeeegefZGd�d	e�Zd
eddfd
�ZGd�de�ZGd�d�ZdZeZ	Gd�de�Z deede
ee!edfdee	eeffd�Z"ejFd�Z$deedeefd�Z%dede	edfdee	eefdee	eefdee	eefdeedefd�Z&y) zB
.. testsetup::

    from packaging.version import parse, Version
�N)�Any�Callable�
NamedTuple�Optional�SupportsInt�Tuple�Union�)�Infinity�InfinityType�NegativeInfinity�NegativeInfinityType)�VERSION_PATTERN�parse�Version�InvalidVersion.c��eZdZUeed<eedfed<eeeefed<eeeefed<eeeefed<eeed<y)	�_Version�epoch.�release�dev�pre�post�localN)	�__name__�
__module__�__qualname__�int�__annotations__rr�str�	LocalType���B/usr/lib/python3/dist-packages/wheel/vendored/packaging/version.pyrr$sY���J�
�3��8�_��	�%��S��/�	"�"�	�%��S��/�	"�"�
�5��c��?�
#�#��I��r#r�version�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��eZdZdZy)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)rrr�__doc__r"r#r$rr9s��r#rc��eZdZUeedfed<defd�Zdddefd�Z	dddefd�Z
dedefd�Zdddefd	�Z
dddefd
�Zdedefd�Zy)
�_BaseVersion.�_keyr&c�,�t|j�S�N)�hashr,��selfs r$�__hash__z_BaseVersion.__hash__Fs���D�I�I��r#�otherc�`�t|t�stS|j|jkSr.��
isinstancer+�NotImplementedr,�r1r3s  r$�__lt__z_BaseVersion.__lt__L�%���%��.�!�!��y�y�5�:�:�%�%r#c�`�t|t�stS|j|jkSr.r5r8s  r$�__le__z_BaseVersion.__le__R�%���%��.�!�!��y�y�E�J�J�&�&r#c�`�t|t�stS|j|jk(Sr.r5r8s  r$�__eq__z_BaseVersion.__eq__Xr=r#c�`�t|t�stS|j|jk\Sr.r5r8s  r$�__ge__z_BaseVersion.__ge__^r=r#c�`�t|t�stS|j|jkDSr.r5r8s  r$�__gt__z_BaseVersion.__gt__dr:r#c�`�t|t�stS|j|jk7Sr.r5r8s  r$�__ne__z_BaseVersion.__ne__jr=r#N)rrrrrrrr2�boolr9r<�objectr?rArCrEr"r#r$r+r+Cs���
��S��/���#��&�N�&�t�&�'�N�'�t�'�'�F�'�t�'�'�N�'�t�'�&�N�&�t�&�'�F�'�t�'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��eZdZUdZej
dezdzejejz�Z	e
ed<deddfd�Z
defd	�Zdefd
�Zedefd��Zedeedffd
��Zedeeeeffd��Zedeefd��Zedeefd��Zedeefd��Zedefd��Zedefd��Zedefd��Zedefd��Zedefd��Zedefd��Z edefd��Z!edefd��Z"y)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*$r,r%r&Nc��|jj|�}|std|�d���t|j	d�rt|j	d��ndt
d�|j	d�jd�D��t|j	d�|j	d	��t|j	d
�|j	d�xs|j	d��t|j	d
�|j	d��t|j	d����|_
t|jj|jj|jj|jj|jj |jj"�|_y)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�2K�|]}t|����y�wr.)r��.0�is  r$�	<genexpr>z#Version.__init__.<locals>.<genexpr>�s����L�Q�#�a�&�L���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,)r1r%�matchs   r$�__init__zVersion.__init__�sR�����"�"�7�+��� �#5�g�Y�a�!@�A�A�!�/4�{�{�7�/C�#�e�k�k�'�*�+���L�%�+�+�i�*@�*F�*F�s�*K�L�L�%�e�k�k�'�&:�E�K�K��<P�Q�&����H�%�u�{�{�9�'=�'W����Y�AW��&�e�k�k�'�&:�E�K�K��<P�Q�&�u�{�{�7�';�<�	
��
���M�M����M�M�!�!��M�M����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"r0s r$�__repr__zVersion.__repr__�s���D�6��%�%r#c�Z�g}|jdk7r|j|j�d��|jdjd�|jD���|j�1|jdjd�|jD���|j
�|jd|j
���|j�|jd|j���|j�|jd	|j���dj|�S)
zA string representation of the version that can be rounded-tripped.

        >>> str(Version("1.0a5"))
        '1.0a5'
        r�!rQc3�2K�|]}t|����y�wr.�r �rM�xs  r$rOz"Version.__str__.<locals>.<genexpr>������;��c�!�f�;�rP�c3�2K�|]}t|����y�wr.rirjs  r$rOz"Version.__str__.<locals>.<genexpr>�s���� :�A��Q�� :�rPz.postz.dev�+)r�append�joinrrrrr�r1�partss  r$�__str__zVersion.__str__�s������:�:��?��L�L�D�J�J�<�q�)�*�	���S�X�X�;�d�l�l�;�;�<��8�8���L�L���� :���� :�:�;��9�9� ��L�L�5�����,�-��8�8���L�L�4����z�*�+��:�:�!��L�L�1�T�Z�Z�L�)�*��w�w�u�~�r#c�.�|jjS)zThe epoch of the version.

        >>> Version("2.0.0").epoch
        0
        >>> Version("1!2.0.0").epoch
        1
        )r`rr0s r$rz
Version.epoch	s���}�}�"�"�"r#.c�.�|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.
        )r`rr0s r$rzVersion.releases���}�}�$�$�$r#c�.�|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)
        )r`rr0s r$rzVersion.pre$s���}�}� � � r#c�d�|jjr|jjdSdS)z�The post-release number of the version.

        >>> print(Version("1.2.3").post)
        None
        >>> Version("1.2.3.post1").post
        1
        r
N)r`rr0s r$rzVersion.post3s*��)-�
�
�(:�(:�t�}�}�!�!�!�$�D��Dr#c�d�|jjr|jjdSdS)z�The development number of the version.

        >>> print(Version("1.2.3").dev)
        None
        >>> Version("1.2.3.dev1").dev
        1
        r
N)r`rr0s r$rzVersion.dev>s*��(,�}�}�'8�'8�t�}�}� � ��#�B�d�Br#c��|jjr,djd�|jjD��Sy)z�The local version segment of the version.

        >>> print(Version("1.2.3").local)
        None
        >>> Version("1.2.3+abc").local
        'abc'
        rQc3�2K�|]}t|����y�wr.rirjs  r$rOz Version.local.<locals>.<genexpr>Ss����@�q�C��F�@�rPN)r`rrqr0s r$rz
Version.localIs3���=�=����8�8�@�D�M�M�,?�,?�@�@�@�r#c�>�t|�jdd�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.2.3+abc.dev1").public
        '1.2.3'
        ror
r)r r]r0s r$�publiczVersion.publicWs���4�y���s�A�&�q�)�)r#c���g}|jdk7r|j|j�d��|jdjd�|jD���dj|�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.3+abc.dev1").base_version
        '1!1.2.3'

        The "base version" is the public version of the project without any pre or post
        release markers.
        rrgrQc3�2K�|]}t|����y�wr.rirjs  r$rOz'Version.base_version.<locals>.<genexpr>yrlrPrm)rrprqrrrs  r$�base_versionzVersion.base_versionds\�����:�:��?��L�L�D�J�J�<�q�)�*�	���S�X�X�;�d�l�l�;�;�<��w�w�u�~�r#c�>�|jduxs|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)rrr0s r$�
is_prereleasezVersion.is_prerelease}s!���x�x�t�#�;�t�x�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)rr0s r$�is_postreleasezVersion.is_postrelease�s���y�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)rr0s r$�
is_devreleasezVersion.is_devrelease�s���x�x�t�#�#r#c�T�t|j�dk\r|jdSdS)zqThe first item of :attr:`release` or ``0`` if unavailable.

        >>> Version("1.2.3").major
        1
        r
r��lenrr0s r$�majorz
Version.major�s'��#&�d�l�l�"3�q�"8�t�|�|�A��?�a�?r#c�T�t|j�dk\r|jdSdS)z�The second item of :attr:`release` or ``0`` if unavailable.

        >>> Version("1.2.3").minor
        2
        >>> Version("1").minor
        0
        �r
rr�r0s r$�minorz
Version.minor��'��#&�d�l�l�"3�q�"8�t�|�|�A��?�a�?r#c�T�t|j�dk\r|jdSdS)z�The third item of :attr:`release` or ``0`` if unavailable.

        >>> Version("1.2.3").micro
        3
        >>> Version("1").micro
        0
        �r�rr�r0s r$�microz
Version.micro�r�r#)#rrrr)�re�compiler�VERBOSE�
IGNORECASErY�CmpKeyrr rcrert�propertyrrrrrrrrrr}r�rFr�r�r�r�r�r�r"r#r$rr�s���.�R�Z�Z��/�1�G�;�R�Z�Z�"�-�-�=W�
X�F�
�L�$
��$
��$
�L&�#�&����B�#�s�#��#��
%��s�C�x��
%��
%��!�X�e�C��H�o�.�!��!��E�h�s�m�E��E��C�X�c�]�C��C���x��}�����
*��
*��
*���c����0�<�t�<��<� �%��%��%��$�t�$��$��@�s�@��@��@�s�@��@��@�s�@��@r#�letter�numberc��|r>|�d}|j�}|dk(rd}n|dk(rd}n
|dvrd}n|dvrd	}|t|�fS|s|rd	}|t|�fSy)
Nr�alpha�a�beta�b)�cr�preview�rc)�rev�rr)�lowerr)r�r�s  r$r^r^�s�����>��F������
�W���F�
�v�
��F�
�.�
.��F�
�|�
#��F��s�6�{�"�"��f����s�6�{�"�"�r#z[\._-]rc�R�|�%td�tj|�D��Sy)zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Nc3�rK�|]/}|j�s|j�n
t|����1y�wr.)�isdigitr�r)rM�parts  r$rOz'_parse_local_version.<locals>.<genexpr>�s/����
��!%����D�J�J�L�C��I�=�
�s�57)r\�_local_version_separatorsr])rs r$r_r_�s4��
���
�1�7�7��>�
�
�	
�r#rrrrrc��ttttjd�t|�����}|�|�	|�t
}n|�t}n|}|�t
}n|}|�t}	n|}	|�t
}
ntd�|D��}
|||||	|
fS)Nc��|dk(S)Nrr")rks r$�<lambda>z_cmpkey.<locals>.<lambda>s
��A��F�r#c3�TK�|] }t|t�r|dfnt|f���"y�w)rmN)r6rr
rLs  r$rOz_cmpkey.<locals>.<genexpr>/s-����
�IJ�z�!�S�)�Q��G�0@�!�/D�D�
�s�&()r\�reversed�list�	itertools�	dropwhiler
r)rrrrrr�_release�_pre�_post�_dev�_locals           r$rara�s������i�)�)�*:�H�W�<M�N�O�P��H��{�t�|���"2��

�������|�#3�����{�"*�����}�/���
�NS�
�
���(�D�%��v�5�5r#)'r)r�r��typingrrrrrrr	�_structuresrrr
r�__all__rr r!�CmpPrePostDevType�CmpLocalTyper�rF�VersionComparisonMethodrr�
ValueErrorrr+�_VERSION_PATTERNrr�bytesr^r�r�r_rar"r#r$�<module>r�s"����	�Q�Q�Q�W�W�
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��	�3�	�9�	��Z��+'�+'�`��>#��	�b@�l�b@�J	!��S�M�!�#(��e�[�$�)F�#G�!�
�e�C��H�o��!�H'�B�J�J�y�1��	���
�	�(�9�2E�	�<6��<6�
�3��8�_�<6�
�%��S��/�	"�<6��5��c��?�
#�	<6�

�%��S��/�	"�<6��I��
<6��<6r#