3 ”Ren<ã @sôddlmZmZmZddlZddlZddlZddlmZm Z ddl m Z e �r.ddl m Z mZmZmZmZmZmZddlmZmZeeefZeeeeeffZeeeefZeeeeeeeefeeeffdffZeeeedfeeeefZeeeedffZe eeefeeefgefZd d d d d gZ ej!dddddddgƒZ"dd „Z#Gdd „d e$ƒZ%Gdd„de&ƒZ'Gdd „d e'ƒZ(ej)dej*ƒZ+ddddddœZ,dd „Z-d!d"„Z.d#Z/Gd$d „d e'ƒZ0d%d&„Z1ej)d'ƒZ2d(d)„Z3d*d+„Z4dS),é)Úabsolute_importÚdivisionÚprint_functionNé)ÚInfinityÚNegativeInfinity)Ú TYPE_CHECKING)ÚCallableÚIteratorÚListÚOptionalÚ SupportsIntÚTupleÚUnion)Ú InfinityTypeÚNegativeInfinityType.ÚparseÚVersionÚ LegacyVersionÚInvalidVersionÚVERSION_PATTERNÚ_VersionÚepochÚreleaseÚdevÚpreÚpostÚlocalc Cs&yt|ƒStk r t|ƒSXdS)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. N)rrr)Úversion©rúŒ/builddir/build/BUILDROOT/alt-python36-pip-20.2.4-5.el8.x86_64/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/packaging/version.pyr0sc@seZdZdZdS)rzF An invalid version was found, users should refer to PEP 440. N)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrr r=sc@sPeZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z dS)Ú _BaseVersionNcCs t|jƒS)N)ÚhashÚ_key)Úselfrrr Ú__hash__Fsz_BaseVersion.__hash__cCs|j|dd„ƒS)NcSs||kS)Nr)ÚsÚorrr ÚLsz%_BaseVersion.__lt__..)Ú_compare)r(Úotherrrr Ú__lt__Jsz_BaseVersion.__lt__cCs|j|dd„ƒS)NcSs||kS)Nr)r*r+rrr r,Psz%_BaseVersion.__le__..)r-)r(r.rrr Ú__le__Nsz_BaseVersion.__le__cCs|j|dd„ƒS)NcSs||kS)Nr)r*r+rrr r,Tsz%_BaseVersion.__eq__..)r-)r(r.rrr Ú__eq__Rsz_BaseVersion.__eq__cCs|j|dd„ƒS)NcSs||kS)Nr)r*r+rrr r,Xsz%_BaseVersion.__ge__..)r-)r(r.rrr Ú__ge__Vsz_BaseVersion.__ge__cCs|j|dd„ƒS)NcSs||kS)Nr)r*r+rrr r,\sz%_BaseVersion.__gt__..)r-)r(r.rrr Ú__gt__Zsz_BaseVersion.__gt__cCs|j|dd„ƒS)NcSs||kS)Nr)r*r+rrr r,`sz%_BaseVersion.__ne__..)r-)r(r.rrr Ú__ne__^sz_BaseVersion.__ne__cCst|tƒstS||j|jƒS)N)Ú isinstancer%ÚNotImplementedr')r(r.Úmethodrrr r-bs z_BaseVersion._compare) r!r"r#r'r)r/r0r1r2r3r4r-rrrr r%Csr%c@s¨eZdZdd„Zdd„Zdd„Zedd„ƒZed d „ƒZed d „ƒZ ed d„ƒZ edd„ƒZ edd„ƒZ edd„ƒZ edd„ƒZedd„ƒZedd„ƒZedd„ƒZdS)rcCst|ƒ|_t|jƒ|_dS)N)ÚstrÚ_versionÚ_legacy_cmpkeyr')r(rrrr Ú__init__ks zLegacyVersion.__init__cCs|jS)N)r9)r(rrr Ú__str__pszLegacyVersion.__str__cCsdjtt|ƒƒƒS)Nz)ÚformatÚreprr8)r(rrr Ú__repr__tszLegacyVersion.__repr__cCs|jS)N)r9)r(rrr ÚpublicxszLegacyVersion.publiccCs|jS)N)r9)r(rrr Ú base_version}szLegacyVersion.base_versioncCsdS)Nréÿÿÿÿr)r(rrr r‚szLegacyVersion.epochcCsdS)Nr)r(rrr r‡szLegacyVersion.releasecCsdS)Nr)r(rrr rŒszLegacyVersion.precCsdS)Nr)r(rrr r‘szLegacyVersion.postcCsdS)Nr)r(rrr r–szLegacyVersion.devcCsdS)Nr)r(rrr r›szLegacyVersion.localcCsdS)NFr)r(rrr Ú is_prerelease szLegacyVersion.is_prereleasecCsdS)NFr)r(rrr Úis_postrelease¥szLegacyVersion.is_postreleasecCsdS)NFr)r(rrr Ú is_devreleaseªszLegacyVersion.is_devreleaseN)r!r"r#r;r<r?Úpropertyr@rArrrrrrrCrDrErrrr rjs          z(\d+ | [a-z]+ | \.| -)Úczfinal-ú@)rÚpreviewú-ÚrcrccsbxVtj|ƒD]H}tj||ƒ}| s |dkr,q |dd…dkrJ|jdƒVq d|Vq WdVdS)NÚ.rÚ 0123456789éÚ*z*final)Ú_legacy_version_component_reÚsplitÚ_legacy_version_replacement_mapÚgetÚzfill)r*Úpartrrr Ú_parse_version_parts»s rVcCs‚d}g}xlt|jƒƒD]\}|jdƒrh|dkrJx|rH|ddkrH|jƒq.Wx|rf|ddkrf|jƒqLW|j|ƒqW|t|ƒfS) NrrOz*finalz*final-Ú00000000rBrBrB)rVÚlowerÚ startswithÚpopÚappendÚtuple)rrÚpartsrUrrr r:Ís   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@sèeZdZejdedejejBƒZdd„Z	dd„Z
dd„Zed	d
„ƒZ
edd„ƒZed
d„ƒZedd„ƒZedd„ƒZedd„ƒZedd„ƒZedd„ƒZedd„ƒZedd„ƒZedd„ƒZedd „ƒZed!d"„ƒZed#d$„ƒZd%S)&rz^\s*z\s*$c	Csà|jj|ƒ}|stdj|ƒƒ‚t|jdƒr8t|jdƒƒndtdd„|jdƒjdƒDƒƒt	|jdƒ|jd	ƒƒt	|jd
ƒ|jdƒp†|jdƒƒt	|jd
ƒ|jdƒƒt
|jdƒƒd�|_t|jj
|jj|jj|jj|jj|jjƒ|_dS)NzInvalid version: '{0}'rrcss|]}t|ƒVqdS)N)Úint)Ú.0Úirrr ú	sz#Version.__init__..rrLÚpre_lÚpre_nÚpost_lÚpost_n1Úpost_n2Údev_lÚdev_nr)rrrrrr)Ú_regexÚsearchrr=rÚgroupr^r\rQÚ_parse_letter_versionÚ_parse_local_versionr9Ú_cmpkeyrrrrrrr')r(rÚmatchrrr r;s$zVersion.__init__cCsdjtt|ƒƒƒS)Nz)r=r>r8)r(rrr r?-szVersion.__repr__cCsÀg}|jdkr |jdj|jƒƒ|jdjdd„|jDƒƒƒ|jdk	rb|jdjdd„|jDƒƒƒ|jdk	r~|jdj|jƒƒ|jdk	rš|jd	j|jƒƒ|jdk	r¶|jd
j|jƒƒdj|ƒS)Nrz{0}!rLcss|]}t|ƒVqdS)N)r8)r_Úxrrr ra:sz"Version.__str__..Úcss|]}t|ƒVqdS)N)r8)r_rprrr ra>sz.post{0}z.dev{0}z+{0})	rr[r=Újoinrrrrr)r(r]rrr r<1s




zVersion.__str__cCs|jj}|S)N)r9r)r(Ú_epochrrr rNsz
Version.epochcCs|jj}|S)N)r9r)r(Ú_releaserrr rTszVersion.releasecCs|jj}|S)N)r9r)r(Ú_prerrr rZszVersion.precCs|jjr|jjdSdS)Nr)r9r)r(rrr r`szVersion.postcCs|jjr|jjdSdS)Nr)r9r)r(rrr reszVersion.devcCs(|jjr djdd„|jjDƒƒSdSdS)NrLcss|]}t|ƒVqdS)N)r8)r_rprrr ransz Version.local..)r9rrr)r(rrr rjsz
Version.localcCst|ƒjddƒdS)Nú+rr)r8rQ)r(rrr r@rszVersion.publiccCsFg}|jdkr |jdj|jƒƒ|jdjdd„|jDƒƒƒdj|ƒS)Nrz{0}!rLcss|]}t|ƒVqdS)N)r8)r_rprrr ra�sz'Version.base_version..rq)rr[r=rrr)r(r]rrr rAws

zVersion.base_versioncCs|jdk	p|jdk	S)N)rr)r(rrr rC…szVersion.is_prereleasecCs
|jdk	S)N)r)r(rrr rDŠszVersion.is_postreleasecCs
|jdk	S)N)r)r(rrr rE�szVersion.is_devreleasecCst|jƒdkr|jdSdS)Nrr)Úlenr)r(rrr Úmajor”sz
Version.majorcCst|jƒdkr|jdSdS)Nérr)rwr)r(rrr Úminor™sz
Version.minorcCst|jƒdkr|jdSdS)Néryr)rwr)r(rrr Úmicrožsz
Version.microN)r!r"r#ÚreÚcompilerÚVERBOSEÚ
IGNORECASErir;r?r<rFrrrrrrr@rArCrDrErxrzr|rrrr rs$cCsx|rZ|dkrd}|jƒ}|dkr&d}n(|dkr4d}n|d
krBd	}n|dkrNd}|t|ƒfS|rt|rtd}|t|ƒfSdS)NrÚalphaÚaÚbetaÚbrGrrIrKÚrevÚrr)rGrrI)r…r†)rXr^)ÚletterÚnumberrrr rl¤s"
rlz[\._-]cCs$|dk	r tdd„tj|ƒDƒƒSdS)zR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    Ncss&|]}|jƒs|jƒnt|ƒVqdS)N)ÚisdigitrXr^)r_rUrrr raÔsz'_parse_local_version..)r\Ú_local_version_separatorsrQ)rrrr rmÍs
rmcCs¤ttttjdd„t|ƒƒƒƒƒ}|dkr>|dkr>|dk	r>t}n|dkrLt}n|}|dkr^t}n|}|dkrpt}	n|}	|dkr‚t}
ntdd„|Dƒƒ}
|||||	|
fS)NcSs|dkS)Nrr)rprrr r,êsz_cmpkey..css(|] }t|tƒr|dfnt|fVqdS)rqN)r5r^r)r_r`rrr rasz_cmpkey..)r\ÚreversedÚlistÚ	itertoolsÚ	dropwhilerr)rrrrrrrtruÚ_postÚ_devÚ_localrrr rnÚs$	rn)5Ú
__future__rrrÚcollectionsr�r}Ú_structuresrrÚ_typingrÚtypingr	r
rrr
rrrrZ
InfiniteTypesr8r^ZPrePostDevTypeZSubLocalTypeZ	LocalTypeZCmpKeyZLegacyCmpKeyÚboolZVersionComparisonMethodÚ__all__Ú
namedtuplerrÚ
ValueErrorrÚobjectr%rr~rrPrRrVr:rrrlrŠrmrnrrrr Ús\$

'F;&