ó â\e[c@`snddlmZmZmZddlZddlZddlZddlmZddddd gZ ej d d d d dddgƒZ d„Z de fd„ƒYZdefd„ƒYZdefd„ƒYZejdejƒZidd6dd6dd6dd6dd 6Zd„Zd„ZdZdefd „ƒYZd!„Zejd"ƒZd#„Zd$„ZdS(%i(tabsolute_importtdivisiontprint_functionNi(tInfinitytparsetVersiont LegacyVersiontInvalidVersiontVERSION_PATTERNt_VersiontepochtreleasetdevtpretposttlocalcC`s-yt|ƒSWntk r(t|ƒSXdS(sÑ 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(tversion((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyRs cB`seZdZRS(sF An invalid version was found, users should refer to PEP 440. (t__name__t __module__t__doc__(((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR$st _BaseVersioncB`sPeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z RS(cC`s t|jƒS(N(thasht_key(tself((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyt__hash__,scC`s|j|d„ƒS(NcS`s ||kS(N((tsto((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyt0s(t_compare(Rtother((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyt__lt__/scC`s|j|d„ƒS(NcS`s ||kS(N((RR((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR3s(R(RR((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyt__le__2scC`s|j|d„ƒS(NcS`s ||kS(N((RR((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR6s(R(RR((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyt__eq__5scC`s|j|d„ƒS(NcS`s ||kS(N((RR((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR9s(R(RR((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyt__ge__8scC`s|j|d„ƒS(NcS`s ||kS(N((RR((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR<s(R(RR((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyt__gt__;scC`s|j|d„ƒS(NcS`s ||kS(N((RR((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR?s(R(RR((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyt__ne__>scC`s&t|tƒstS||j|jƒS(N(t isinstanceRtNotImplementedR(RRtmethod((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyRAs( RRRRRR R!R"R#R(((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR*s       cB`sÈeZd„Zd„Zd„Zed„ƒZed„ƒZed„ƒZed„ƒZ ed„ƒZ ed„ƒZ ed „ƒZ ed „ƒZ ed „ƒZed „ƒZed „ƒZRS(cC`s%t|ƒ|_t|jƒ|_dS(N(tstrt_versiont_legacy_cmpkeyR(RR((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyt__init__JscC`s|jS(N(R((R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyt__str__NscC`sdjtt|ƒƒƒS(Ns(tformattreprR'(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyt__repr__QscC`s|jS(N(R((R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pytpublicTscC`s|jS(N(R((R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyt base_versionXscC`sdS(Niÿÿÿÿ((R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR \scC`sdS(N(tNone(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR `scC`sdS(N(R1(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR dscC`sdS(N(R1(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyRhscC`sdS(N(R1(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR lscC`sdS(N(R1(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyRpscC`stS(N(tFalse(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyt is_prereleasetscC`stS(N(R2(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pytis_postreleasexscC`stS(N(R2(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyt is_devrelease|s(RRR*R+R.tpropertyR/R0R R R RR RR3R4R5(((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyRHs   s(\d+ | [a-z]+ | \.| -)tctpreviewsfinal-t-trct@cc`sxxltj|ƒD][}tj||ƒ}| s|dkrAqn|d dkrb|jdƒVqd|VqWdVdS(Nt.it 0123456789it*s*final(t_legacy_version_component_retsplitt_legacy_version_replacement_maptgettzfill(Rtpart((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyt_parse_version_partsŠs cC`s»d}g}x–t|jƒƒD]‚}|jdƒr”|dkrjx'|rf|ddkrf|jƒqCWnx'|r|ddkr|jƒqmWn|j|ƒqWt|ƒ}||fS(NiÿÿÿÿR>s*finals*final-t00000000(REtlowert startswithtpoptappendttuple(RR tpartsRD((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR)›s  s— 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
cB`sìeZejdedejejBƒZd„Zd„Z	d„Z
ed„ƒZed„ƒZ
ed„ƒZed„ƒZed	„ƒZed
„ƒZed„ƒZed„ƒZed
„ƒZed„ƒZed„ƒZRS(s^\s*s\s*$cC`s[|jj|ƒ}|s0tdj|ƒƒ‚ntd|jdƒrZt|jdƒƒnddtd„|jdƒjdƒDƒƒdt	|jdƒ|jd	ƒƒd
t	|jdƒ|jdƒpÓ|jd
ƒƒdt	|jdƒ|jdƒƒdt
|jdƒƒƒ|_t|jj
|jj|jj|jj|jj|jjƒ|_dS(NsInvalid version: '{0}'R
iRcs`s|]}t|ƒVqdS(N(tint(t.0ti((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pys	èsR<R
tpre_ltpre_nRtpost_ltpost_n1tpost_n2Rtdev_ltdev_nR(t_regextsearchRR,R	tgroupRMRKR@t_parse_letter_versiont_parse_local_versionR(t_cmpkeyR
RR
RRRR(RRtmatch((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR*ßs.*(!					cC`sdjtt|ƒƒƒS(Ns(R,R-R'(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR.scC`sg}|jdkr1|jdj|jƒƒn|jdjd„|jDƒƒƒ|jdk	r‰|jdjd„|jDƒƒƒn|jdk	r´|jdj|jƒƒn|jdk	rß|jdj|jƒƒn|j	dk	r
|jd	j|j	ƒƒndj|ƒS(
Nis{0}!R<cs`s|]}t|ƒVqdS(N(R'(RNtx((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pys	
stcs`s|]}t|ƒVqdS(N(R'(RNR^((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pys	ss.post{0}s.dev{0}s+{0}(
R
RJR,tjoinRR
R1RRR(RRL((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR+s#&cC`s
|jjS(N(R(R
(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR
!scC`s
|jjS(N(R(R(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR%scC`s
|jjS(N(R(R
(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR
)scC`s|jjr|jjdSdS(Ni(R(RR1(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR-scC`s|jjr|jjdSdS(Ni(R(RR1(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR1scC`s1|jjr)djd„|jjDƒƒSdSdS(NR<cs`s|]}t|ƒVqdS(N(R'(RNR^((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pys	8s(R(RR`R1(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR5scC`st|ƒjddƒdS(Nt+ii(R'R@(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR/<scC`sag}|jdkr1|jdj|jƒƒn|jdjd„|jDƒƒƒdj|ƒS(Nis{0}!R<cs`s|]}t|ƒVqdS(N(R'(RNR^((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pys	IsR_(R
RJR,R`R(RRL((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR0@s
#cC`s|jdk	p|jdk	S(N(RR1R
(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR3MscC`s
|jdk	S(N(RR1(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR4QscC`s
|jdk	S(N(RR1(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR5Us(RRtretcompileRtVERBOSEt
IGNORECASERWR*R.R+R6R
RR
RRRR/R0R3R4R5(((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyRØs"	#		
cC`s²|r‹|dkrd}n|jƒ}|dkr<d}n?|dkrQd}n*|d
krfd	}n|dkr{d}n|t|ƒfS|r®|r®d}|t|ƒfSdS(NitalphatatbetatbR7R
R8R:trevtrR(R7sprespreview(srevRk(R1RGRM(tlettertnumber((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyRZZs 					
s[\._-]cC`s-|dk	r)td„tj|ƒDƒƒSdS(sR
    Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
    cs`s3|])}|jƒs!|jƒn	t|ƒVqdS(N(tisdigitRGRM(RNRD((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pys	‚sN(R1RKt_local_version_separatorsR@(R((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR[|scC`sÝttttjd„t|ƒƒƒƒƒ}|dkr[|dkr[|dk	r[t}n|dkrpt}n|dkr†t}n|dkr›t}n|dkr±t}ntd„|Dƒƒ}||||||fS(NcS`s
|dkS(Ni((R^((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyRscs`s7|]-}t|tƒr$|dfn
t|fVqdS(R_N(R$RMR(RNRO((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pys	µs(RKtreversedtlistt	itertoolst	dropwhileR1R(R
RR
RRR((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyR\‡s&	$
	
	
	
(t
__future__RRRtcollectionsRrRbt_structuresRt__all__t
namedtupleR	Rt
ValueErrorRtobjectRRRcRdR?RARER)RRRZRoR[R\(((s</tmp/pip-install-0xiv62/pip/pip/_vendor/packaging/version.pyts0	9&		:‚