aiZ dZddlmZddlZddlZddlZddlmZmZmZm Z m Z m Z m Z m Z ddlmZmZmZmZejrddlmZmZejdkrdd lmZnejrdd lmZn ddlZddlZdMdZddddddddZgdZe e eefdfZ e eee eeffZ!e ee e e eefe ee eefffdffZ"e ee edfe!e!e!e"fZ#ee#e#ge$fZ%Gdde dZ&dNdZ'Gdde(Z)Gdd Z*d!Z+e+,d"d#,d$d%Z-ej.j/d&kr ejd'ks&ej.j/d(kr ejd)ks ejd*kre-ne+Z0 ej1d+ej2Z3dOd.Z4dPd0Z5dQd2Z6dRd4Z7dSd6Z8dTd8Z9Gd9d:e Z:Gd;de*Z;Gd<d=e;ZdVdFZ?dWdLZ@dS)XzB .. testsetup:: from packaging.version import parse, Version ) annotationsN)AnyCallableLiteral NamedTuple SupportsIntTuple TypedDictUnion)Infinity InfinityTypeNegativeInfinityNegativeInfinityType)SelfUnpack) ) deprecatedmessagestrreturnobjectcdfd }|S)NfuncrrcLtjdfd }|S)NargsrkwargsrcLtjtd|i|S)N)category stacklevel)warningswarnDeprecationWarning)rrrrs a/home/jenkins/workspace/simtester-sanitize/venv/lib/python3.11/site-packages/packaging/version.pywrapperz/_deprecated..decorator..wrapper)s< /  tT,V,,,)rrrrrr) functoolswraps)rr'rs` r& decoratorz_deprecated..decorator(sC _T " " - - - - - -# " -Nr()rrrr)rr+s` r& _deprecatedr-'s)      r(abrcpost)alphabetacprepreviewrevr)VERSION_PATTERNInvalidVersionVersionparse.cLeZdZUded<ded<ded<ded<ded<d ed <d S) _VersionReplace int | Noneepochztuple[int, ...] | Nonerelease*tuple[Literal['a', 'b', 'rc'], int] | Noner5r1dev str | NonelocalN__name__ __module__ __qualname____annotations__r,r(r&r>r>UsW####3333OOOr(r>F)totalversionr;c t|S)zParse the given version string. >>> parse('1.0.dev1') :param version: The version string to parse. :raises InvalidVersion: When the version string is not a valid version. )r;)rLs r&r<r<^s 7  r(ceZdZdZdS)r:zRaised when a version string is not a valid version. >>> Version("invalid") Traceback (most recent call last): ... packaging.version.InvalidVersion: Invalid version: 'invalid' N)rGrHrI__doc__r,r(r&r:r:jsr(r:cpeZdZdZejr eddZddZdd Z dd Z dd Z dd Z ddZ ddZdS) _BaseVersionr,rtuple[Any, ...]cdSNr,selfs r&_keyz_BaseVersion._key|s+.3r(intc*t|jSrT)hashrWrUs r&__hash__z_BaseVersion.__hash__sDIr(otherboolcZt|tstS|j|jkSrT isinstancerQNotImplementedrWrVr\s r&__lt__z_BaseVersion.__lt__)%.. "! !y5:%%r(cZt|tstS|j|jkSrTr_rbs r&__le__z_BaseVersion.__le__)%.. "! !yEJ&&r(rcZt|tstS|j|jkSrTr_rbs r&__eq__z_BaseVersion.__eq__rgr(cZt|tstS|j|jkSrTr_rbs r&__ge__z_BaseVersion.__ge__rgr(cZt|tstS|j|jkSrTr_rbs r&__gt__z_BaseVersion.__gt__rdr(cZt|tstS|j|jkSrTr_rbs r&__ne__z_BaseVersion.__ne__rgr(N)rrRrrX)r\rQrr])r\rrr])rGrHrI __slots__typing TYPE_CHECKINGpropertyrWr[rcrfrirkrmror,r(r&rQrQtsI / ... . &&&& '''' '''' '''' &&&& ''''''r(rQa1 v?+ # optional leading v (?: (?:(?P[0-9]+)!)?+ # epoch (?P[0-9]+(?:\.[0-9]+)*+) # release segment (?P
                                          # pre-release
            [._-]?+
            (?Palpha|a|beta|b|preview|pre|c|rc)
            [._-]?+
            (?P[0-9]+)?
        )?+
        (?P                                         # post release
            (?:-(?P[0-9]+))
            |
            (?:
                [._-]?
                (?Ppost|rev|r)
                [._-]?
                (?P[0-9]+)?
            )
        )?+
        (?P                                          # dev release
            [._-]?+
            (?Pdev)
            [._-]?+
            (?P[0-9]+)?
        )?+
    )
    (?:\+
        (?P                                        # local version
            [a-z0-9]+
            (?:[._-][a-z0-9]+)*+
        )
    )?+
z*+*z?+?cpython)rpypy)rrxr)rrxz[a-z0-9]+(?:[._-][a-z0-9]+)*valuerXcl|pd}t|tr|dkr|Sd|}t|)Nrz(epoch must be non-negative integer, got r`rXr:)r{r@msgs   r&_validate_epochrsEJQE%%1**
z$_validate_release..s5??!
1c""-qAv??????r(z@release must be a non-empty tuple of non-negative integers, got )r`tuplelenallr:)r{rAr~s   r&_validate_releaserssmddG7E""LL1??w?????

VW
V
VC


r(rBc||St|trFt|dkr3|ddvr)t|dtr|ddkr|Sd|}t	|)Nr r)r.r/r0rz=pre must be a tuple of ('a'|'b'|'rc', non-negative int), got )r`rrrXr:r{r~s  r&
_validate_prers}5%  JJ!OO!H(((uQx%%
)!HMM
Q%
Q
QC


r("tuple[Literal['post'], int] | Nonecp||St|tr
|dkrd|fSd|}t|)Nrr1z'post must be non-negative integer, got r}rs  r&_validate_postrsK}%%1**
;E
;
;C


r(!tuple[Literal['dev'], int] | Nonecp||St|tr
|dkrd|fSd|}t|)NrrCz&dev must be non-negative integer, got r}rs  r&
_validate_devrsK}%%1**u~
:5
:
:C


r(LocalType | Nonec||St|tr)t|rt	|Sd|}t|)Nz*local must be a valid version string, got )r`r_LOCAL_PATTERN	fullmatch_parse_local_versionr:rs  r&_validate_localr#s\}%+.":":5"A"A+#E***
@u
@
@C


r(cLeZdZUded<ded<ded<ded<ded<d	ed
<dS)_VersionrXr@rrAtuple[str, int] | NonerCr5r1rrENrFr,r(r&rr-sWJJJ    r(rceZdZUdZdZdZejdezdzej	ej
zZded<ded<d	ed
<d	ed<d	ed<d
ed<ded<d6dZ
d7dZed8dZeedd9dZejedd:d Zd;d!Zd;d"Zed;d#Zedd&Zed?d(Zed?d)Zed@d+Zed;d,Zed;d-ZedAd/ZedAd0Z edAd1Z!ed>> v1 = Version("1.0a5")
    >>> v2 = Version("1.0")
    >>> v1
    
    >>> v2
    
    >>> v1 < v2
    True
    >>> v1 == v2
    False
    >>> v1 > v2
    False
    >>> v1 >= v2
    False
    >>> v1 <= v2
    True
    )_dev_epoch
_key_cache_local_post_pre_release)_strz\s*rXrrrrrrrrrz
CmpKey | NonerrLrrNonec`|j|}|std||dr"t	|dnd|_t
tt|dd|_	t|d|d|_t|d|d	p|d
|_t|d|d|_
t|d
|_d|_dS)aCInitialize a Version object.

        :param version:
            The string representation of a version which will be parsed and normalized
            before use.
        :raises InvalidVersion:
            If the ``version`` does not conform to PEP 440 in any way then this
            exception will be raised.
        zInvalid version: r@rrA.pre_lpre_npost_lpost_n1post_n2dev_ldev_nrEN)_regexrr:grouprXrrmapsplitr_parse_letter_versionrrrrrr)rVrLmatchs   r&__init__zVersion.__init__\sX%%g..	B !@W!@!@AAA38;;w3G3GNc%++g..///Qc#u{{9'='='C'CC'H'HIIJJ
)%++g*>*>G@T@TUU	*KK!!5;;y#9#9#SU[[=S=S


*%++g*>*>G@T@TUU	*5;;w+?+?@@r(rUnpack[_VersionReplace]rcd|vrt|dn|j}d|vrt|dn|j}d|vrt	|dn|j}d|vrt
|dn|j}d|vrt|dn|j	}d|vrt|dn|j}||jkr9||jkr.||jkr#||jkr||j	kr
||jkr|S|j
|j}d|_||_||_||_||_||_	||_|S)Nr@rAr5r1rCrE)rrrrrrrrrrrr	__class____new__r)	rVrr@rAr5r1rCrEnew_versions	         r&__replace__zVersion.__replace__vs4;v4E4Ew0004;F""
fY/000	
/4voomF5M***491761A1A~fVn---tz.3voomF5M***494;v4E4Ew0004;
T[  4=((ty  
""ty  $$Kn,,T^<<!%"& "r(CmpKeyc|j7t|j|j|j|j|j|j|_|jSrT)r_cmpkeyrrrrrrrUs r&rWzVersion._keysC?"%
	
	
DOr(z4Version._version is private and will be removed soonrcft|j|j|j|j|j|jSrT)rrrrrrrrUs r&_versionzVersion._versions/K	49dj$+

	
r(r{c|j|_|j|_|j|_|j|_|j|_	|j
|_d|_dSrT)
r@rrArrCrr5rr1rrErr)rVr{s  r&rzVersion._versionsEk

I	I	Z
kr(cd|dS)zA representation of the Version that shows all internal state.

        >>> Version('1.0.0')
        
        z
r,rUs r&__repr__zVersion.__repr__s&D%%%%r(cldtt|j}|jr|jd|}|j0|dtt|jz
}|j
|d|jz
}|j
|d|jz
}|j
|d|jz
}|S)z}A string representation of the version that can be round-tripped.

        >>> str(Version("1.0a5"))
        '1.0a5'
        r!Nz.postz.dev+)	joinrrrAr@r5r1rCrE)rVrLs  r&__str__zVersion.__str__s((3sDL1122:	0//g//G8rwws311222G9 *ty***G8(dh(((G:!'4:'''Gr(c t|S)z Internal property for match_argsrrUs r&rzVersion._strs4yyr(c|jS)zThe epoch of the version.

        >>> Version("2.0.0").epoch
        0
        >>> Version("1!2.0.0").epoch
        1
        )rrUs r&r@z
Version.epochs{r(c|jS)adThe components of the "release" segment of the version.

        >>> Version("1.2.3").release
        (1, 2, 3)
        >>> Version("2.0.0").release
        (2, 0, 0)
        >>> Version("1!2.0.0.post0").release
        (2, 0, 0)

        Includes trailing zeroes but not the epoch or any pre-release / development /
        post-release suffixes.
        )rrUs r&rAzVersion.releases}r(c|jS)aThe pre-release segment of the version.

        >>> print(Version("1.2.3").pre)
        None
        >>> Version("1.2.3a1").pre
        ('a', 1)
        >>> Version("1.2.3b1").pre
        ('b', 1)
        >>> Version("1.2.3rc1").pre
        ('rc', 1)
        )rrUs r&r5zVersion.presyr(r?c.|jr
|jdndS)zThe post-release number of the version.

        >>> print(Version("1.2.3").post)
        None
        >>> Version("1.2.3.post1").post
        1
        rN)rrUs r&r1zVersion.posts!%
4tz!}}4r(c.|jr
|jdndS)zThe development number of the version.

        >>> print(Version("1.2.3").dev)
        None
        >>> Version("1.2.3.dev1").dev
        1
        rN)rrUs r&rCzVersion.devs $y2ty||d2r(rDc\|jr$dd|jDSdS)zThe local version segment of the version.

        >>> print(Version("1.2.3").local)
        None
        >>> Version("1.2.3+abc").local
        'abc'
        rc34K|]}t|VdSrTr)rxs  r&rz Version.local..,s(88qCFF888888r(N)rrrUs r&rEz
Version.local"s6;	8888DK8888884r(cTt|dddS)zThe public portion of the version.

        >>> Version("1.2.3").public
        '1.2.3'
        >>> Version("1.2.3+abc").public
        '1.2.3'
        >>> Version("1!1.2.3dev1+abc").public
        '1!1.2.3.dev1'
        rrr)rrrUs r&publiczVersion.public0s#4yysA&&q))r(cdtt|j}|jr|jd|n|S)a\The "base version" of the version.

        >>> Version("1.2.3").base_version
        '1.2.3'
        >>> Version("1.2.3+abc").base_version
        '1.2.3'
        >>> Version("1!1.2.3dev1+abc").base_version
        '1!1.2.3'

        The "base version" is the public version of the project without any pre or post
        release markers.
        rr)rrrrAr@)rVrelease_segments  r&base_versionzVersion.base_version=sC((3sDL#9#9::48JS$*00000OSr(r]c&|jdup|jduS)aTWhether this version is a pre-release.

        >>> Version("1.2.3").is_prerelease
        False
        >>> Version("1.2.3a1").is_prerelease
        True
        >>> Version("1.2.3b1").is_prerelease
        True
        >>> Version("1.2.3rc1").is_prerelease
        True
        >>> Version("1.2.3dev1").is_prerelease
        True
        N)rCr5rUs r&
is_prereleasezVersion.is_prereleaseNsxt#;txt';;r(c|jduS)zWhether this version is a post-release.

        >>> Version("1.2.3").is_postrelease
        False
        >>> Version("1.2.3.post1").is_postrelease
        True
        N)r1rUs r&is_postreleasezVersion.is_postrelease_sy$$r(c|jduS)zWhether this version is a development release.

        >>> Version("1.2.3").is_devrelease
        False
        >>> Version("1.2.3.dev1").is_devrelease
        True
        N)rCrUs r&
is_devreleasezVersion.is_devreleasejsxt##r(cPt|jdkr
|jdndS)zqThe first item of :attr:`release` or ``0`` if unavailable.

        >>> Version("1.2.3").major
        1
        rrrrArUs r&majorz
Version.majorus(#&dl"3"3q"8"8t|Aa?r(cPt|jdkr
|jdndS)zThe second item of :attr:`release` or ``0`` if unavailable.

        >>> Version("1.2.3").minor
        2
        >>> Version("1").minor
        0
        r rrrrUs r&minorz
Version.minor~(#&dl"3"3q"8"8t|Aa?r(cPt|jdkr
|jdndS)zThe third item of :attr:`release` or ``0`` if unavailable.

        >>> Version("1.2.3").micro
        3
        >>> Version("1").micro
        0
        rr rrrUs r&microz
Version.microrr(N)rLrrr)rrrr)rr)rr)r{rrr)rrrprr)rr)rr?)rrD)rr])%rGrHrIrOrq__match_args__recompiler9VERBOSE
IGNORECASErrJrrrtrWr-rsetterrrrr@rAr5r1rCrErrrrrrrrr,r(r&r;r;6sw.XIN
RZ0692:
;U
V
VFKKK        !!!!4B


X
[GHH


IHX

_[GHHIH_&&&&>XX


X
X555X5333X3X
*
*
*X
*TTTXT <<<X< %%%X%$$$X$@@@X@@@@X@@@@X@@@r(c@eZdZdZd	fdZed
fdZxZS)_TrimmedReleaser,rL
str | Versionrrc t|trV|j|_|j|_|j|_|j|_|j|_|j|_|j|_dSt
|dSrT)r`r;rrrrrrrsuperr)rVrLrs  r&rz_TrimmedRelease.__init__sygw''	!.DK#,DMDIDI DJ!.DK%0DOF
!!!!!r(rctj}t|}|}|dkr)||dz
dkr|dz}|dkr||dz
dk||kr|n	|d|S)z
        Release segment without any trailing zeros.

        >>> _TrimmedRelease('1.0.0').release
        (1,)
        >>> _TrimmedRelease('0.0').release
        (0,)
        rrN)rrAr)rVrellen_releaserrs    r&rAz_TrimmedRelease.releasesyggo#hh!eeAE
a
FA!eeAE
a;&&ssCG3r()rLrrrr)rGrHrIrqrrtrA
__classcell__)rs@r&rrslI
"
"
"
"
"
"44444X44444r(rletterrDnumber str | bytes | SupportsInt | Nonerc|rB|}t||}|t|pdfS|rdt|fSdS)Nrr1)lower_LETTER_NORMALIZATIONgetrX)rrs  r&rrsi(
'**66::s6;Q''''
#s6{{""4r(z[\._-]rEcl|1tdt|DSdS)zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Nc3K|];}|s|nt|V.sU

!%=DJJLLLCII





r()r_local_version_separatorsr)rEs r&rrsM


177>>




	
4r(r@rAr5rCrcPt|}|}|r%||dz
dkr|dz}|r||dz
dk||kr|n	|d|}||
|t}	n|t}	n|}	|t}
n|}
|t}n|}|t}ntd|D}|||	|
||fS)Nrrc3ZK|]&}t|tr|dfnt|fV'dS)rN)r`rXrrs  r&rz_cmpkey..sP

IJz!S))DQGG0@!/D





r()rrr
r)
r@rAr5r1rCrErrrrrrrs
             r&rrsg,,KA
A!##	QA!##{**wwH{t|"2

|#3{"*}/

NS




(D%v55r()rrrr)rLrrr;)r{rrrX)r{rrr)r{rrrB)r{rrr)r{rrr)r{rrr)rrDrrrr)rErDrr)r@rXrArr5rr1rrCrrErrr)ArO
__future__rrsysrrrrrrrr	r
r_structuresr
rrrrstyping_extensionsrrversion_infor#rr-r)r__all__rXr	LocalTypeCmpPrePostDevTypeCmpLocalTyperr]VersionComparisonMethodr>r<
ValueErrorr:rQ_VERSION_PATTERNreplace_VERSION_PATTERN_OLDimplementationnamer9rrrrrrrrrrr;rrrrrr,r(r&rs#"""""				







																				XWWWWWWWWWWW	/........w2222222;;;;;;;OOO



"	
	D
C
C%S/3&'	,(.L.L
'!!
	;R]KK				z\@\@\@\@\@l\@\@\@~
44444g444D0'BJy11				:6:6:6:6:6:6r(