`L i?dZddlZddlZddlZddlZddlmZmZmZm Z m Z m Z m Z ddl mZmZmZmZgdZe eefZe ee eeffZe eeefZe ee e ee eefe eeffdffZe ee edfeeeefZe ee edffZee eefe eefgefZej:dgd Zd ed e d fd ZGdde Z!GddZ"Gdde"Z#ejHdejJZ&ddddddZ'ded eefdZ(d ed efdZ)dZ*Gdde"Z+ded e ee,e fd e e eeffd!Z-ejHd"Z.d#ed e efd$Z/d%ed&e edfd'e e eefd(e e eefd)e e eefd#e e ed efd*Z0y)+zPVendoered from https://github.com/pypa/packaging/blob/main/packaging/version.py N)CallableIteratorListOptional SupportsIntTupleUnion)Infinity InfinityTypeNegativeInfinityNegativeInfinityType)parseVersion LegacyVersionInvalidVersionVERSION_PATTERN._Version)epochreleasedevprepostlocalversionreturn)rrcN t|S#t$rt|cYSwxYw)aParse the given version from a string to an appropriate class. Parameters ---------- version : str Version in a string format, eg. "0.9.1" or "1.2.dev0". Returns ------- version : :class:`Version` object or a :class:`LegacyVersion` object Returned class depends on the given version: if is a valid PEP 440 version or a legacy version. )rrr)rs j/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sklearn/externals/_packaging/version.pyrrAs,&w &W%%&s $$ceZdZdZy)rzF An invalid version was found, users should refer to PEP 440. N)__name__ __module__ __qualname____doc__rrrUsr%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__d%%.! !yy5::%%r%c`t|tstS|j|jkSr*r1r4s r__le__z_BaseVersion.__le__j%%.! !yyEJJ&&r%c`t|tstS|j|jk(Sr*r1r4s r__eq__z_BaseVersion.__eq__pr9r%c`t|tstS|j|jk\Sr*r1r4s r__ge__z_BaseVersion.__ge__vr9r%c`t|tstS|j|jkDSr*r1r4s r__gt__z_BaseVersion.__gt__|r6r%c`t|tstS|j|jk7Sr*r1r4s r__ne__z_BaseVersion.__ne__r9r%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)rrrNct||_t|j|_t j dt y)NzZCreating a LegacyVersion has been deprecated and will be removed in the next major release)str_version_legacy_cmpkeyr(warningswarnDeprecationWarning)r-rs r__init__zLegacyVersion.__init__s1G  "4==1   0  r%c|jSr*rKr,s r__str__zLegacyVersion.__str__s }}r%cd|dS)Nzr$r,s r__repr__zLegacyVersion.__repr__s!$s++r%c|jSr*rRr,s rpubliczLegacyVersion.public }}r%c|jSr*rRr,s r base_versionzLegacyVersion.base_versionrYr%cy)Nr$r,s rrzLegacyVersion.epochsr%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%cyrer$r,s ris_postreleasezLegacyVersion.is_postreleasergr%cyrer$r,s r is_devreleasezLegacyVersion.is_devreleasergr%)rN)r r!r"rJrPrSrVpropertyrXr[rErrrrrrrFrfrirkr$r%rrrs3   ,#,csttr%rz(\d+ | [a-z]+ | \.| -)czfinal-@)rpreview-rcrsc#Ktj|D]B}tj||}|r|dk(r!|dddvr|j dts{  8| #**Q- *   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)Nr]rwrxz*final-00000000)rlower startswithpopappendtuple)rrpartsr~s rrLrLs EE$W]]_5  ??3 hb Y 6IIKb Y 6E"I3 E"I3  T  %, 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__...sLQ#a&Lrrtpre_lpre_npost_lpost_n1post_n2dev_ldev_nr)rrrrrr)_regexsearchrrgrouprErrz_parse_letter_version_parse_local_versionrK_cmpkeyrrrrrrr()r-rmatchs   rrPzVersion.__init__$sR""7+ #5gYa!@AA!/4{{7/C#ekk'*+L%++i*@*F*Fs*KLL%ekk'&:EKK.L;c!f;rc32K|]}t|ywr*rrs  rrz"Version.__str__..Ps :AQ :rz.postz.dev+)rrjoinrrrrrr-rs  rrSzVersion.__str__Ds::?LLDJJ.zs@qCF@r)rKrrr,s rrz
Version.localws1==88@DMM,?,?@@@r%c>t|jdddS)Nrr
r)rJrzr,s rrXzVersion.public~s4ysA&q))r%cg}|jdk7r|j|jd|jdjd|jDdj|S)Nrrrtc32K|]}t|ywr*rrs  rrz'Version.base_version..rrr)rrrrrs  rr[zVersion.base_versionsZ::?LLDJJ|jduxs|jduSr*)rrr,s rrfzVersion.is_prereleasesxxt#;txxt';;r%c|jduSr*)rr,s rrizVersion.is_postreleasesyy$$r%c|jduSr*)rr,s rrkzVersion.is_devreleasesxxt##r%cTt|jdk\r|jdSdS)Nr
rlenrr,s rmajorz
Version.major%"%dll"3q"8t||A?a?r%cTt|jdk\r|jdSdS)Nr
rrr,s rminorz
Version.minorrr%cTt|jdk\r|jdSdS)Nrrrr,s rmicroz
Version.microrr%) r r!r"recompilerVERBOSE
IGNORECASErrJrPrVrSrlrErrrrrrrrrXr[rFrfrirkrrrr$r%rrr s
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)rmrrorq)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_separatorsrz)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..s
AFr%c3TK|] }t|tr|dfnt|f"yw)rN)r2rEr
rs  rrz_cmpkey..s-
IJz!S)QG0@!/DD
s&()rreversedlist	itertools	dropwhiler
r)rrrrrrrr_post_dev_locals           rrrsi))*:HWrs6	PPPWW
Tl$889
}eCHo56]C,-	
,#$&45
7	

		


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

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

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