File: //usr/local/CyberCP/lib/python3.10/site-packages/soupsieve/__pycache__/__meta__.cpython-310.pyc
o
�hn � @ s� d Z ddlmZ ddlmZ ddlZe�d�Zdddd ddd dd
�Zdddddd
d
dd
�Z dddd�Z
G dd� dedg d���Zddd�Zedddd�Z
e
�� ZdS )zMeta related things.� )�annotations)�
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
r r )r r r c sZ e Zd ZdZ dd� fdd�
Zddd�Zddd�Zddd�Zddd�Zddd�Z � Z
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�int�minor�micro�release�str�pre�post�dev�returnc
s� |||||fD ]}t |t�r|dkstd��q|tvr#td|� d���d| k r-dk rDn n|dkr7td��|r=td��|rCtd ��n#|d
k r[|dkrT|dkrTtd��|rZtd ��n|ratd
��|rgtd��t� �| |||||||�S )zValidate version info.r z6All 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
r z!Implicit pre-release not allowed.zVersion is not a pre-release.)�
isinstancer �
ValueError�REL_MAP�super�__new__) �clsr r r r r r r �value�� __class__� �E/usr/local/CyberCP/lib/python3.10/site-packages/soupsieve/__meta__.pyr S s2 ���zVersion.__new__�boolc C � t | jdk�S )zIs prerelease.r )r% r ��selfr# r# r$ �_is_pre{ � zVersion._is_prec C s t | jdk �S )zIs development.r
)r% r r'