/ lib / soupsieve / __meta__.pyc
__meta__.pyc
 1  o

 2  t�c��	@s�dZddlmZddlZe�d�Zddddddddd	�Zd
 3  d
 4  d
 5  d
 6  dddd
d	�Zdddd�ZGdd�dedgd���Z	de
 7  de	fdd�Ze	dddddd�Ze�
�ZdS)zMeta related things.�)�
 8  namedtupleNz�(?x)
 9      (?P<major>\d+)(?:\.(?P<minor>\d+))?(?:\.(?P<micro>\d+))?
10      (?:(?P<type>a|b|rc)(?P<pre>\d+))?
11      (?:\.post(?P<post>\d+))?
12      (?:\.dev(?P<dev>\d+))?
13      ��a�b�rc)�.devz
14  .dev-alphaz	.dev-beta�.dev-candidate�alpha�beta�	candidate�finalz
2 - Pre-Alphaz	3 - Alphaz4 - Betaz5 - Production/Stabler	r
15  r)rrrcs�eZdZdZ		ddededededed	ed
16  eddf�fdd
�
Zdefdd�Zdefdd�Z	defdd�Z
17  defdd�Zdefdd�Z�Z
S)�Versional
18      Get the version (PEP 440).
19  
20      A biased approach to the PEP 440 semantic version.
21  
22      Provides a tuple structure which is sorted for comparisons `v1 > v2` etc.
23        (major, minor, micro, release type, pre-release build, post-release build, development release build)
24      Release types are named in is such a way they are comparable with ease.
25      Accessors to check if a development, pre-release, or post-release build. Also provides accessor to get
26      development status for setup files.
27  
28      How it works (currently):
29  
30      - You must specify a release type as either `final`, `alpha`, `beta`, or `candidate`.
31      - To define a development release, you can use either `.dev`, `.dev-alpha`, `.dev-beta`, or `.dev-candidate`.
32        The dot is used to ensure all development specifiers are sorted before `alpha`.
33        You can specify a `dev` number for development builds, but do not have to as implicit development releases
34        are allowed.
35      - You must specify a `pre` value greater than zero if using a prerelease as this project (not PEP 440) does not
36        allow implicit prereleases.
37      - You can optionally set `post` to a value greater than zero to make the build a post release. While post releases
38        are technically allowed in prereleases, it is strongly discouraged, so we are rejecting them. It should be
39        noted that we do not allow `post0` even though PEP 440 does not restrict this. This project specifically
40        does not allow implicit post releases.
41      - It should be noted that we do not support epochs `1!` or local versions `+some-custom.version-1`.
42  
43      Acceptable version releases:
44  
45      ```
46      Version(1, 0, 0, "final")                    1.0
47      Version(1, 2, 0, "final")                    1.2
48      Version(1, 2, 3, "final")                    1.2.3
49      Version(1, 2, 0, ".dev-alpha", pre=4)        1.2a4
50      Version(1, 2, 0, ".dev-beta", pre=4)         1.2b4
51      Version(1, 2, 0, ".dev-candidate", pre=4)    1.2rc4
52      Version(1, 2, 0, "final", post=1)            1.2.post1
53      Version(1, 2, 3, ".dev")                     1.2.3.dev0
54      Version(1, 2, 3, ".dev", dev=1)              1.2.3.dev1
55      ```
56  
57      rr�major�minor�micro�release�pre�post�dev�returnc	
58  s�|||||fD]}t|t�r|dkstd��q|tvr"td�|���d|kr,dkrCnn|dkr6td��|r<td��|rBtd��n#|d	krZ|d
59  krS|dkrStd��|rYtd��n|r`td��|rftd��tt|��||||||||�S)
zValidate version info.rz6All version parts except 'release' should be integers.z!'{}' is not a valid release type.rr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.)�
60  isinstance�int�
61  ValueError�REL_MAP�format�superr
�__new__)	�clsrrrrrrr�value��	__class__���C:\Users\Jacks.GUTTSPC\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\soupsieve\__meta__.pyrRs2���zVersion.__new__cC�t|jdk�S)zIs prerelease.r)�boolr��selfr!r!r"�_is_prez�zVersion._is_precCst|jdk�S)zIs development.r	)r$rr%r!r!r"�_is_devr(zVersion._is_devcCr#)zIs post.r)r$rr%r!r!r"�_is_post�r(zVersion._is_postcCs
62  t|jS)zGet development status string.)�
63  DEV_STATUSrr%r!r!r"�_get_dev_status�s
64  zVersion._get_dev_statuscCs�|jdkrd�|j|j�}n
65  d�|j|j|j�}|��r(|d�t|j|j�7}|��r4|d�|j	�7}|�
66  �r@|d�|j�7}|S)z Get the canonical output string.rz{}.{}z{}.{}.{}z{}{}z.post{}z.dev{})rrrrr'rrrr*rr)r)r&�verr!r!r"�_get_canonical�s
67  zVersion._get_canonical)rrrr)�__name__�
68  __module__�__qualname__�__doc__r�strrr$r'r)r*r,r.�
__classcell__r!r!rr"r
's4,���������(r
)rrrrrrrr-rc	Cst�|�}|durtd�|���t|�d��}|�d�r#t|�d��nd}|�d�r1t|�d��nd}|�d�rGt|�d�}t|�d��}nd	}d}|�d
69  �rU|�d
70  �nd}|�d
71  �rlt|�d
72  ��}|rid|nd}nd}|�d
�rzt|�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
)	r-�mrrrrrrrr!r!r"�
parse_version�s$
73  
74  
75  r;��r�)r)r2�collectionsr�re�compiler6rr+r9r
r3r;�__version_info__r.�__version__r!r!r!r"�<module>s:�
76  ��y#