← Back
Editing: __meta__.cpython-311.pyc
� !�Pb� � � � d Z ddlmZ ddlZ ej d� � Zddddddddd �Zd d d d dddd d �Zdddd�Z G d� d edg d�� � � � Z de de fd�Z e dddd� � Ze� � � 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 r r )r r r c � � � e Zd ZdZ ddededededed ed edd f� 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|dk st d� � ��-|t vr"t d� |� � � � �d|cxk rdk r;n n8|dk rt d� � �|rt d� � �|rt d� � �nU|d k r-|d k r|dk rt d� � �|rt d� � �n"|rt d� � �|rt d� � �t 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.)� isinstance�int� ValueError�REL_MAP�format�superr �__new__) �clsr r r r r r r �value� __class__s ��4/usr/lib/python3/dist-packages/soupsieve/__meta__.pyr zVersion.__new__R s� �� � �U�E�3��5� [� [�E��u�c�*�*� [�u��z�z� �!Y�Z�Z�Z� 0:� �'�!�!��@�G�G��P�P�Q�Q�Q� �g�/�/�/�/��/�/�/�/�/��a�x�x� �!E�F�F�F�� U� �!H�I�I�I�� U� �!S�T�T�T� U� �w� � �����C�1�H�H� �!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 | j dk � � S )zIs prerelease.r )�boolr ��selfs r# �_is_prezVersion._is_prez s � � �D�H�q�L�!�!�!r$ c �2 � t | j dk � � S )zIs development.r )r&