2bi8SSKrSSKrSSKrSSKrSSKJrJrJrJrJ r J r J r SSK J r JrJrJr /SQr\ \\4r\ \\ \\44r\ \\\4r\ \\ \ \\ \\4\ \\44S44r\ \\ \S4\\\\4r\ \\ \S44r\\ \\4\ \\4/\4r\R8"S/SQ5rS \S \ S 4S jr"S S\5r "SS5r!"SS\!5r"\RF"S\RH5r%SSSSSS.r&S\S \\4Sjr'S \S \4Sjr(Sr)"SS\!5r*S\S\ \\+\ 4S \\ \\44S jr,\RF"S!5r-S"\S \\4S#jr.S$\S%\ \S4S&\\ \\4S'\\ \\4S(\\ \\4S"\\ \S \4S)jr/g)*N)CallableIteratorListOptional SupportsIntTupleUnion)Infinity InfinityTypeNegativeInfinityNegativeInfinityType)parseVersion LegacyVersionInvalidVersionVERSION_PATTERN._Version)epochreleasedevprepostlocalversionreturn)rrcP[U5$![a [U5s$f=f)z Parse the given version string and return either a :class:`Version` object or a :class:`LegacyVersion` object depending on if the given version is a valid PEP 440 version or a legacy version. )rrr)rs ڏ/builddir/build/BUILDROOT/alt-python313-pip-23.3.1-3.el8.x86_64/opt/alt/python313/lib/python3.13/site-packages/pip/_vendor/packaging/version.pyrr*s, &w &W%%&s %%c\rSrSrSrSrg)r6z> An invalid version was found, users should refer to PEP 440. N)__name__ __module__ __qualname____firstlineno____doc____static_attributes__r!rrr6sr(rc\rSrSr%\\\4\S'S\4Sjr SSS\ 4Sjr SSS\ 4Sjr S\ S\ 4SjrSSS\ 4S jrSSS\ 4S jrS\ S\ 4S jrS rg ) _BaseVersion<_keyrc,[UR5$N)hashr,selfs r__hash___BaseVersion.__hash__?sDIIr(othercj[U[5(d[$URUR:$r. isinstancer*NotImplementedr,r1r4s r__lt___BaseVersion.__lt__E(%..! !yy5::%%r(cj[U[5(d[$URUR:*$r.r6r9s r__le___BaseVersion.__le__K(%..! !yyEJJ&&r(cj[U[5(d[$URUR:H$r.r6r9s r__eq___BaseVersion.__eq__Qr@r(cj[U[5(d[$URUR:$r.r6r9s r__ge___BaseVersion.__ge__Wr@r(cj[U[5(d[$URUR:$r.r6r9s r__gt___BaseVersion.__gt__]r<r(cj[U[5(d[$URUR:g$r.r6r9s r__ne___BaseVersion.__ne__cr@r(r!N)r"r#r$r%r CmpKey LegacyCmpKey__annotations__intr2boolr:r>objectrBrErHrKr'r!r(rr*r*<s  $ %%# &N&t& 'N't' 'F't' 'N't' &N&t& 'F't'r(r*c6\rSrSrS\SS4SjrS\4SjrS\4Sjr\S\4Sj5r \S\4S j5r \S\ 4S j5r \SS j5r \SS j5r\SS j5r\SSj5r\SSj5r\S\4Sj5r\S\4Sj5r\S\4Sj5rSrg)rjrrNcX[U5Ul[UR5Ulgr.)str_version_legacy_cmpkeyr,)r1rs r__init__LegacyVersion.__init__ksG  "4==1 r(cUR$r.rWr0s r__str__LegacyVersion.__str__ps }}r(cSUS3$)Nzr!r0s r__repr__LegacyVersion.__repr__ss!$s++r(cUR$r.r\r0s rpublicLegacyVersion.publicv }}r(cUR$r.r\r0s r base_versionLegacyVersion.base_versionzrfr(cg)Nr!r0s rrLegacyVersion.epoch~sr(cgr.r!r0s rrLegacyVersion.releaser(cgr.r!r0s rrLegacyVersion.preror(cgr.r!r0s rrLegacyVersion.postror(cgr.r!r0s rrLegacyVersion.devror(cgr.r!r0s rrLegacyVersion.localror(cgNFr!r0s r is_prereleaseLegacyVersion.is_prereleaser(cgryr!r0s ris_postreleaseLegacyVersion.is_postreleaser|r(cgryr!r0s r is_devreleaseLegacyVersion.is_devreleaser|r(r,rW)rN)r"r#r$r%rVrYr]rapropertyrdrhrPrrrrrrrQrzr~rr'r!r(rrrjs3222 ,#,csttr(rz(\d+ | [a-z]+ | \.| -)czfinal-@)rpreview-rcrsc## [RU5HLn[RX5nU(aUS:XaM'USSS;aUR S5v MESU-v MN Sv g7f)N.r 0123456789**final)_legacy_version_component_resplit_legacy_version_replacement_mapgetzfill)rparts r_parse_version_partsrsc,2215.224>ts{  8| #**Q- * 6 NsA+A-cSn/n[UR55HnURS5(ajUS:a2U(a+USS:Xa"UR5 U(a USS:XaM"U(a+USS:Xa"UR5 U(a USS:XaM"UR U5 M U[ U54$)Nrkrrz*final-00000000)rlower startswithpopappendtuple)rrpartsrs rrXrXs EE$W]]_5 ??3  hb Y 6IIKb Y 6E"I3 E"I3  T6 %, r(a v? (?: (?:(?P[0-9]+)!)? # epoch (?P[0-9]+(?:\.[0-9]+)*) # release segment (?P
                                          # pre-release
            [-_\.]?
            (?P(a|b|c|rc|alpha|beta|pre|preview))
            [-_\.]?
            (?P[0-9]+)?
        )?
        (?P                                         # post release
            (?:-(?P[0-9]+))
            |
            (?:
                [-_\.]?
                (?Ppost|rev|r)
                [-_\.]?
                (?P[0-9]+)?
            )
        )?
        (?P                                          # dev release
            [-_\.]?
            (?Pdev)
            [-_\.]?
            (?P[0-9]+)?
        )?
    )
    (?:\+(?P[a-z0-9]+(?:[-_\.][a-z0-9]+)*))?       # local version
c\rSrSr\R
"S\-S-\R\R-5r	S\
SS4SjrS\
4SjrS\
4S	jr
\S\4S
j5r\S\\S44Sj5r\S\\\
\44S
j5r\S\\4Sj5r\S\\4Sj5r\S\\
4Sj5r\S\
4Sj5r\S\
4Sj5r\S\4Sj5r\S\4Sj5r\S\4Sj5r\S\4Sj5r\S\4Sj5r\S\4Sj5r Sr!g)rz^\s*z\s*$rrNcURRU5nU(d[SUS35e[UR	S5(a[UR	S55OS[
SUR	S5RS555[UR	S5UR	S	55[UR	S
5UR	S5=(d UR	S55[UR	S
5UR	S55[UR	S55S9Ul
[URRURRURRURRURR URR"5Ulg)NzInvalid version: ''rrc38# UHn[U5v M g7fr.)rP.0is  r	#Version.__init__..
sL*KQ#a&&*Krrpre_lpre_npost_lpost_n1post_n2dev_ldev_nr)rrrrrr)_regexsearchrrgrouprPrr_parse_letter_version_parse_local_versionrW_cmpkeyrrrrrrr,)r1rmatchs   rrYVersion.__init__sU""7+ #5gYa!@AA!/4{{7/C/C#ekk'*+L%++i*@*F*Fs*KLL%ekk'&:EKK.(;lc!fflrc38# UHn[U5v M g7fr.rrs  rrr,s :AQrz.postz.dev+)rrjoinrrrrrr1rs  rr]Version.__str__ s::?LLDJJ.Vs@,?qCFF,?r)rWrrr0s rr
Version.localSs1==88@DMM,?,?@@@r(c>[U5RSS5S$)Nrr
r)rVrr0s rrdVersion.publicZs4ysA&q))r(c/nURS:waURURS35 URSRSUR555 SRU5$)Nrrrc38# UHn[U5v M g7fr.rrs  rr'Version.base_version..grrr)rrrrrs  rrhVersion.base_version^sZ::?LLDJJF
WF
v
F
.
.F
|
#Fs6{""fs6{""r(z[\._-]rcTUb%[S[RU555$g)zJ
Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
Nc3# UH5nUR5(dUR5O
[U5v M7 g7fr.)isdigitrrP)rrs  rr'_parse_local_version..s0
>!%DJJLCI=>s=?)r_local_version_separatorsr)rs rrrs4

177>

	
r(rrrrrc$[[[[R"S[U55555nUc
Uc
Ub[
nOUc[nOUnUc[
nOUnUc[n	OUn	Uc[
n
O[SU55n
XXxX4$)NcUS:H$)Nrr!)rs r_cmpkey..sAFr(c3d# UH&n[U[5(aUS4O[U4v M( g7f)rN)r7rPr
rs  rr_cmpkey..s.
NSz!S))QG0@!/DDes.0)rreversedlist	itertools	dropwhiler
r)rrrrrrrr_post_dev_locals           rrrsi))*:HWr"s
	PPPWW
Tl$889
}eCHo56]C,-	
,#$&45
7	

		


	
sCx...)S
S%S/)*"
6< %(<"=>D!!C
	&3	&5!;<	&Z+'+'\6L6r "zz*CRZZP	

#CHSM"CL:@E@lE@P!!sE;67!
eCHo!HJJy1		(;	<6<6
38_<6
%S/	"<65c?
#	<6

%S/	"<6E,'(
<6<6r(