K in dZddlmZddlmZddlZej dZdddd ddd dd Zd d d d d d d dd Z ddddZ GddedgdZ ddZ e ddddZ e jZy)zMeta related things.) annotations) namedtupleNz(?x) (?P\d+)(?:\.(?P\d+))?(?:\.(?P\d+))? (?:(?Pa|b|rc)(?P
\d+))?
    (?:\.post(?P\d+))?
    (?:\.dev(?P\d+))?
    abrc).devz
.dev-alphaz	.dev-beta.dev-candidatealphabeta	candidatefinalz
2 - Pre-Alphaz	3 - Alphaz4 - Betaz5 - Production/Stablerrr
)rrrcpeZdZdZ		d															d	fd
Zd
dZd
dZd
dZddZddZ	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
    ```

    c
|||||fD]"}t|tr|dk\rtd|tvrtd|dd|cxkrdkr-nn*|dk(rtd|rtd|rLtd	|d
kr"|dkDr|dk(rtd|r%td	|rtd
|rtdt	|||||||||S)zValidate version info.rz6All version parts except 'release' should be integers.'z' is not a valid release type.r
rz"Implicit pre-releases not allowed.z%Version is not a development release.z0Post-releases are not allowed with pre-releases.rr	z!Implicit pre-release not allowed.zVersion is not a pre-release.)
isinstanceint
ValueErrorREL_MAPsuper__new__)
clsmajorminormicroreleaseprepostdevvalue	__class__s
         X/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/soupsieve/__meta__.pyrzVersion.__new__SsUE35	[Euc*uz !YZZ	['!q	)GHIIg//ax !EFF !HII !STTw
C1H !DEE !STT !@AA !HIIwsE5%#tSQQc2t|jdkDS)zIs prerelease.r)boolrselfs r#_is_prezVersion._is_pre{sDHHqL!!r$c2t|jdkS)zIs development.r)r&rr's r#_is_devzVersion._is_devsDLL7*++r$c2t|jdkDS)zIs post.r)r&rr's r#_is_postzVersion._is_postsDIIM""r$c(t|jS)zGet development status string.)
DEV_STATUSrr's r#_get_dev_statuszVersion._get_dev_statuss$,,''r$c|jdk(r|jd|j}n(|jd|jd|j}|jr$|t|j
|jz
}|jr|d|jz
}|jr|d|jz
}|S)z Get the canonical output string.r.z.postr	)rrrr)rrrr-rr+r )r(vers  r#_get_canonicalzVersion._get_canonicals::?ZZL$**.CZZL$**Qtzzl;C<<>gdll+,TXXJ77C==?U499+&&C<<>T$(($$C
r$)rrrr)rrrrrrrstrrrrrr rreturnr)r6r&)r6r5)__name__
__module____qualname____doc__rr)r+r-r0r4
__classcell__)r"s@r#rr(s(X	SAy1SE!9:;;
 !E%&WWW%5C !1E%&WWW%5C !1E	wwvaggfo.!''%.!GGEN!''%.Cwwu~!''%.!'*'G#$%776?3qwwvD5%dC@@r$r)r3r5r6r)r:
__future__rcollectionsrrecompiler>rr/rArrC__version_info__r4__version__r$r#rMs""		



	
! %

$	
&<vj$`avr AF1aG,--/r$