R`i8ddlZddlZddlZddlZddlmZmZmZmZm Z m Z m Z ddl m Z mZmZmZgdZe eefZe ee eeffZe eeefZe ee e ee eefe eeffdffZe ee edfeeeefZe ee edffZee eefe eefgefZej8dgdZd ed e d fd ZGd deZ GddZ!Gdde!Z"ejFdejHZ%ddddddZ&ded eefdZ'd ed efdZ(dZ)Gdde!Z*dede ee+e fd ee eeffd Z,ejFd!Z-d"ed eefd#Z.d$ed%e edfd&ee eefd'ee eefd(ee eefd"ee ed efd)Z/y)*N)CallableIteratorListOptional SupportsIntTupleUnion)Infinity InfinityTypeNegativeInfinityNegativeInfinityType)parseVersion LegacyVersionInvalidVersionVERSION_PATTERN._Version)epochreleasedevprepostlocalversionreturn)rrcN t|S#t$rt|cYSwxYw)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-python312-pip-23.3.1-3.el8.x86_64/opt/alt/python312/lib/python3.12/site-packages/pip/_vendor/packaging/version.pyrr*s, &w &W%%&s $$ceZdZdZy)rzF An invalid version was found, users should refer to PEP 440. N)__name__ __module__ __qualname____doc__rrr6sr%rceZdZUeeefed<defdZddde fdZ ddde fdZ de de fdZ ddde fdZddde fd Zde de fd Zy ) _BaseVersion_keyrc,t|jSN)hashr(selfs r__hash__z_BaseVersion.__hash__?sDIIr%otherc`t|tstS|j|jkSr* isinstancer'NotImplementedr(r-r/s r__lt__z_BaseVersion.__lt__E%%.! !yy5::%%r%c`t|tstS|j|jkSr*r1r4s r__le__z_BaseVersion.__le__K%%.! !yyEJJ&&r%c`t|tstS|j|jk(Sr*r1r4s r__eq__z_BaseVersion.__eq__Qr9r%c`t|tstS|j|jk\Sr*r1r4s r__ge__z_BaseVersion.__ge__Wr9r%c`t|tstS|j|jkDSr*r1r4s r__gt__z_BaseVersion.__gt__]r6r%c`t|tstS|j|jk7Sr*r1r4s r__ne__z_BaseVersion.__ne__cr9r%N)r r!r"r CmpKey LegacyCmpKey__annotations__intr.boolr5r8objectr;r=r?rAr$r%rr'r'<s  $ %%# &N&t& 'N't' 'F't' 'N't' &N&t& 'F't'r%r'ceZdZdeddfdZdefdZdefdZedefdZedefdZ ede fd Z edd Z edd Z edd Zedd ZeddZedefdZedefdZedefdZy)rrrNcXt||_t|j|_yr*)str_version_legacy_cmpkeyr()r-rs r__init__zLegacyVersion.__init__ksG  "4==1 r%c|jSr*rKr,s r__str__zLegacyVersion.__str__ps }}r%cd|dS)Nzr$r,s r__repr__zLegacyVersion.__repr__ss!$s++r%c|jSr*rOr,s rpubliczLegacyVersion.publicv }}r%c|jSr*rOr,s r base_versionzLegacyVersion.base_versionzrVr%cy)Nr$r,s rrzLegacyVersion.epoch~sr%cyr*r$r,s rrzLegacyVersion.releaser%cyr*r$r,s rrzLegacyVersion.prer\r%cyr*r$r,s rrzLegacyVersion.postr\r%cyr*r$r,s rrzLegacyVersion.devr\r%cyr*r$r,s rrzLegacyVersion.localr\r%cyNFr$r,s r is_prereleasezLegacyVersion.is_prereleaser%cyrbr$r,s ris_postreleasezLegacyVersion.is_postreleaserdr%cyrbr$r,s r is_devreleasezLegacyVersion.is_devreleaserdr%)rN)r r!r"rJrMrPrSpropertyrUrXrErrrrrrrFrcrfrhr$r%rrrjs3222 ,#,csttr%rz(\d+ | [a-z]+ | \.| -)czfinal-@)rpreview-rcrsc#Ktj|D]B}tj||}|r|dk(r!|dddvr|j dts{  8| #**Q- * 6 NsA A"cBd}g}t|jD]s}|jdrO|dkr%|r#|ddk(r|j|r |ddk(r|r#|ddk(r|j|r |ddk(r|j |u|t |fS)NrZrtruz*final-00000000)r|lower startswithpopappendtuple)rrpartsr{s rrLrLs 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
ceZdZejdezdzejejzZde	ddfdZ
de	fdZde	fdZe
defd	Ze
deed
ffdZe
deee	effdZe
deefd
Ze
deefdZe
dee	fdZe
de	fdZe
de	fdZe
defdZe
defdZe
defdZe
defdZe
defdZe
defdZy)rz^\s*z\s*$rrNc|jj|}|std|dt|j	drt|j	dndt
d|j	djdDt|j	d|j	d	t|j	d
|j	dxs|j	dt|j	d
|j	dt|j	d|_
t|jj|jj|jj|jj|jj |jj"|_y)NzInvalid version: ''rrc32K|]}t|ywr*)rE.0is  r	z#Version.__init__..
sL*KQ#a&*Krrqpre_lpre_npost_lpost_n1post_n2dev_ldev_nr)rrrrrr)_regexsearchrrgrouprErrw_parse_letter_version_parse_local_versionrK_cmpkeyrrrrrrr()r-rmatchs   rrMzVersion.__init__sR""7+ #5gYa!@AA!/4{{7/C#ekk'*+L%++i*@*F*Fs*KLL%ekk'&:EKK.(;lc!flrc32K|]}t|ywr*rrs  rrz"Version.__str__..,s :AQrz.postz.dev+)rrjoinrrrrrr-rs  rrPzVersion.__str__ s::?LLDJJ.Vs@,?qCF,?r)rKrrr,s rrz
Version.localSs1==88@DMM,?,?@@@r%c>t|jdddS)Nrr
r)rJrwr,s rrUzVersion.publicZs4ysA&q))r%cg}|jdk7r|j|jd|jdjd|jDdj|S)Nrrrqc32K|]}t|ywr*rrs  rrz'Version.base_version..grrr)rrrrrs  rrXzVersion.base_version^sZ::?LLDJJ|jduxs|jduSr*)rrr,s rrczVersion.is_prereleaseksxxt#;txxt';;r%c|jduSr*)rr,s rrfzVersion.is_postreleaseosyy$$r%c|jduSr*)rr,s rrhzVersion.is_devreleasessxxt##r%cTt|jdk\r|jdSdS)Nr
rlenrr,s rmajorz
Version.majorw%"%dll"3q"8t||A?a?r%cTt|jdk\r|jdSdS)Nr
rrr,s rminorz
Version.minor{rr%cTt|jdk\r|jdSdS)Nrrrr,s rmicroz
Version.microrr%) r r!r"recompilerVERBOSE
IGNORECASErrJrMrSrPrirErrrrrrrrrUrXrFrcrfrhrrrr$r%rrrs
RZZ/1G;RZZ"--=W
XF


:&#&8ssCxXeCHo.EhsmEECXc]CCx}***
c

|d}|j}|dk(rd}n|dk(rd}n
|dvrd}n|dvrd	}|t|fS|s|rd	}|t|fSy)
Nralphaabetab)rjrrlrn)revrr)rrE)rrs  rrrs>F
WF
v
F
.
.F
|
#Fs6{""fs6{""r%z[\._-]rcR|%tdtj|DSy)zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Nc3rK|]/}|js|jn
t|1ywr*)isdigitrrE)rr{s  rrz'_parse_local_version..s/
>!%DJJLCI=>s57)r_local_version_separatorsrw)rs rrrs4

177>

	
r%rrrrrcttttjdt|}||	|t
}n|t}n|}|t
}n|}|t}	n|}	|t
}
ntd|D}
|||||	|
fS)Nc|dk(S)Nrr$)rs rz_cmpkey..sAFr%c3TK|] }t|tr|dfnt|f"yw)rN)r2rEr
rs  rrz_cmpkey..s,
NSz!S)QG0@!/DDes&()rreversedlist	itertools	dropwhiler
r)rrrrrrrr_post_dev_locals           rrrsi))*:HWrs
	PPPWW
Tl$889
}eCHo56]C,-	
,#$&45
7	

		


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

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

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