HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/site-packages/soupsieve/__pycache__/__meta__.cpython-311.pyc
�

��nc��	��dZddlmZddlZejd��Zddddddddd	�Zd
d
d
d
dddd
d	�Zdddd�ZGd�dedgd�����Z	de
de	fd�Ze	ddddd���Ze�
��ZdS)zMeta related things.�)�
namedtupleNz�(?x)
    (?P<major>\d+)(?:\.(?P<minor>\d+))?(?:\.(?P<micro>\d+))?
    (?:(?P<type>a|b|rc)(?P<pre>\d+))?
    (?:\.post(?P<post>\d+))?
    (?:\.dev(?P<dev>\d+))?
    ��a�b�rc)�.devz
.dev-alphaz	.dev-beta�.dev-candidate�alpha�beta�	candidate�finalz
2 - Pre-Alphaz	3 - Alphaz4 - Betaz5 - Production/Stabler
rr)rrrc���eZdZdZ		ddededededed	ed
eddf�fd�
Zdefd
�Zdefd�Z	defd�Z
defd�Zdefd�Z�xZ
S)�Versional
    Get the version (PEP 440).

    A biased approach to the PEP 440 semantic version.

    Provides a tuple structure which is sorted for comparisons `v1 > v2` etc.
      (major, minor, micro, release type, pre-release build, post-release build, development release build)
    Release types are named in is such a way they are comparable with ease.
    Accessors to check if a development, pre-release, or post-release build. Also provides accessor to get
    development status for setup files.

    How it works (currently):

    - You must specify a release type as either `final`, `alpha`, `beta`, or `candidate`.
    - To define a development release, you can use either `.dev`, `.dev-alpha`, `.dev-beta`, or `.dev-candidate`.
      The dot is used to ensure all development specifiers are sorted before `alpha`.
      You can specify a `dev` number for development builds, but do not have to as implicit development releases
      are allowed.
    - You must specify a `pre` value greater than zero if using a prerelease as this project (not PEP 440) does not
      allow implicit prereleases.
    - You can optionally set `post` to a value greater than zero to make the build a post release. While post releases
      are technically allowed in prereleases, it is strongly discouraged, so we are rejecting them. It should be
      noted that we do not allow `post0` even though PEP 440 does not restrict this. This project specifically
      does not allow implicit post releases.
    - It should be noted that we do not support epochs `1!` or local versions `+some-custom.version-1`.

    Acceptable version releases:

    ```
    Version(1, 0, 0, "final")                    1.0
    Version(1, 2, 0, "final")                    1.2
    Version(1, 2, 3, "final")                    1.2.3
    Version(1, 2, 0, ".dev-alpha", pre=4)        1.2a4
    Version(1, 2, 0, ".dev-beta", pre=4)         1.2b4
    Version(1, 2, 0, ".dev-candidate", pre=4)    1.2rc4
    Version(1, 2, 0, "final", post=1)            1.2.post1
    Version(1, 2, 3, ".dev")                     1.2.3.dev0
    Version(1, 2, 3, ".dev", dev=1)              1.2.3.dev1
    ```

    r
r�major�minor�micro�release�pre�post�dev�returnc
�Z��|||||fD],}t|t��r|dkstd����-|tvr"td�|�����d|cxkrdkr;nn8|dkrtd���|rtd���|rtd���nU|d	kr-|d
kr|dkrtd���|rtd���n"|rtd���|rtd���tt|���||||||||��S)
zValidate version info.rz6All version parts except 'release' should be integers.z!'{}' is not a valid release type.r	r
z"Implicit pre-releases not allowed.z%Version is not a development release.z0Post-releases are not allowed with pre-releases.r
rz!Implicit pre-release not allowed.zVersion is not a pre-release.)�
isinstance�int�
ValueError�REL_MAP�format�superr�__new__)
�clsrrrrrrr�value�	__class__s
         ��4D:\Python311\Lib\site-packages\soupsieve/__meta__.pyrzVersion.__new__Rs�����U�E�3��5�	[�	[�E��u�c�*�*�
[�u��z�
[� �!Y�Z�Z�Z�
[��'�!�	R��@�G�G��P�P�Q�Q�Q��g�	J�	J�	J�	J��	J�	J�	J�	J�	J��a�x�
U� �!E�F�F�F��
U� �!H�I�I�I��
U� �!S�T�T�T�
U��w�
�	J����
U�C�1�H�
U� �!D�E�E�E��
U� �!S�T�T�T�
U�
�
J� �!@�A�A�A��
J� �!H�I�I�I��W�c�"�"�*�*�3��u�e�W�c�SW�Y\�]�]�]�c�2�t|jdk��S)zIs prerelease.r)�boolr��selfs r#�_is_prezVersion._is_prezs���D�H�q�L�!�!�!r$c�2�t|jdk��S)zIs development.r
)r&rr's r#�_is_devzVersion._is_devs���D�L�7�*�+�+�+r$c�2�t|jdk��S)zIs post.r)r&rr's r#�_is_postzVersion._is_post�s���D�I��M�"�"�"r$c�&�t|jS)zGet development status string.)�
DEV_STATUSrr's r#�_get_dev_statuszVersion._get_dev_status�s���$�,�'�'r$c���|jdkr!d�|j|j��}n&d�|j|j|j��}|���r.|d�t
|j|j��z
}|���r|d�|j	��z
}|�
��r|d�|j��z
}|S)z Get the canonical output string.rz{}.{}z{}.{}.{}z{}{}z.post{}z.dev{})rrrrr)rrrr-rr+r)r(�vers  r#�_get_canonicalzVersion._get_canonical�s����:��?�	H��.�.���T�Z�8�8�C�C��#�#�D�J��
�D�J�G�G�C��<�<�>�>�	B��6�=�=����!6���A�A�A�C��=�=�?�?�	/��9�#�#�D�I�.�.�.�C��<�<�>�>�	-��8�?�?�4�8�,�,�,�C��
r$)r
rrr)�__name__�
__module__�__qualname__�__doc__r�strrr&r)r+r-r0r3�
__classcell__)r"s@r#rr's5�������(�(�X<C�01�&^�&^��&^��&^�'*�&^�58�&^��&^� �&^�+.�&^�
�	&^�&^�&^�&^�&^�&^�P"��"�"�"�"�
,��,�,�,�,�
#�$�#�#�#�#�
(��(�(�(�(�
���������r$r)rrrrrrrr2rc	���t�|��}|�"td�|�����t	|�d����}|�d��r"t	|�d����nd}|�d��r"t	|�d����nd}|�d��rCt|�d��}t	|�d����}nd	}d}|�d
��r|�d
��nd}|�d
��r,t	|�d
����}|rd|znd}nd}|�d
��r"t	|�d
����nd}t|||||||��S)z.Parse version into a comparable Version tuple.Nz'{}' is not a valid versionrrrr�typerr
rz.dev-rr)�RE_VER�matchrrr�group�PRE_REL_MAPr)	r2�mrrrrrrrs	         r#�
parse_versionrA�s���	���S���A��D��6�=�=�c�B�B�C�C�C�
����� � �!�!�E�%&�W�W�W�%5�%5�<�C����� � �!�!�!�1�E�%&�W�W�W�%5�%5�<�C����� � �!�!�!�1�E�	�w�w�v�����a�g�g�f�o�o�.���!�'�'�%�.�.�!�!��������G�G�E�N�N�
1�!�'�'�%�.�.�.��C��w�w�u�~�~���!�'�'�%�.�.�!�!��'*�6�'�G�#�#������$%�7�7�6�?�?�9�3�q�w�w�v�������D��5�%����d�C�@�@�@r$��r
�)r)r7�collectionsr�re�compiler<rr/r?rr8rA�__version_info__r3�__version__�r$r#�<module>rKs<����"�"�"�"�"�"�	�	�	�	�	����
�
��
����
���
�	�	��
�!� �%�
���
$�	�	�
��&��<�<��v�v�v�v�v�j�j��$`�$`�$`�a�a�v�v�v�r A�s� A�w� A� A� A� A�F�7�1�a��G�!�4�4�4���-�-�/�/���r$