a „oe ã @sÆUddlZddlZddlZddlZddlmZmZmZmZm Z m Z m Z ddl m Z mZmZmZmZmZddlmZddlmZmZddlmZgd¢ZeeegefZGd d „d eƒZ Gd d „d eƒZ!Gd d„deƒZ"eedœdd„Z#d.e eee efe eedœdd„Z$dd„dd„ej%ej&ej'ej(ej)ej*dœZ+eeefe,d<eeeedœdd„Z-eee edfdœd d!„Z.eeeefed"œd#d$„Z/d%ed&œd'd(„Z0eeefd)œd*d+„Z1Gd,d-„d-ƒZ2dS)/éN)ÚAnyÚCallableÚDictÚListÚOptionalÚTupleÚUnioné)Ú MarkerAtomÚ MarkerListÚOpÚValueÚVariableÚ parse_marker)ÚParserSyntaxError)ÚInvalidSpecifierÚ Specifier©Úcanonicalize_name)Ú InvalidMarkerÚUndefinedComparisonÚUndefinedEnvironmentNameÚMarkerÚdefault_environmentc@seZdZdZdS)rzE An invalid marker was found, users should refer to PEP 508. N©Ú__name__Ú __module__Ú __qualname__Ú__doc__©rrúHC:\Program Files\Certbot\pkgs\pkg_resources\_vendor\packaging\markers.pyr"src@seZdZdZdS)rzP An invalid operation was attempted on a value that doesn't support it. Nrrrrr r(src@seZdZdZdS)rz\ A name was attempted to be used that does not exist inside of the environment. Nrrrrr r.sr)ÚresultsÚreturncCs|t|dtƒrx|d\}}}t|tƒrD|jdkrDt|jƒ}t|ƒ}n&t|tƒrj|jdkrjt|jƒ}t|ƒ}|||f|d<|S)z! Normalize extra values. rÚextra)Ú isinstanceÚtuplerÚvaluerr )r!ÚlhsÚopÚrhsZnormalized_extrarrr Ú_normalize_extra_values5s   r*T)ÚmarkerÚfirstr"cCs¨t|tttfƒsJ‚t|tƒrHt|ƒdkrHt|dttfƒrHt|dƒSt|tƒr‚dd„|Dƒ}|rnd |¡Sdd |¡dSn"t|tƒr d dd „|Dƒ¡S|SdS) Nr rcss|]}t|dd�VqdS)F)r,N)Ú_format_marker©Ú.0Úmrrr Ú Wóz!_format_marker..ú ú(ú)cSsg|] }| ¡‘qSr)Ú serializer.rrr Ú ]r2z"_format_marker..)r$Úlistr%ÚstrÚlenr-Újoin)r+r,Úinnerrrr r-Es ÿ þý    r-cCs||vS©Nr©r'r)rrr Úcr2r?cCs||vSr=rr>rrr r?dr2)Úinznot inú=ú>Ú _operators)r'r(r)r"cCsxztd | ¡|g¡ƒ}Wnty,Yn0|j|dd�St | ¡¡}|durntd|›d|›d|›d�ƒ‚|||ƒS)NÚT)Z prereleasesz Undefined z on z and Ú.)rr;r6rÚcontainsrCÚgetr)r'r(r)ÚspecZoperrrr Ú_eval_opns rI.)ÚvaluesÚkeyr"cGs|dkrtdd„|DƒƒS|S)Nr#css|]}t|ƒVqdSr=r)r/Úvrrr r1ƒr2z_normalize..)r%)rKrJrrr Ú _normalize}srM)ÚmarkersÚ environmentr"c Csægg}|D]È}t|tttfƒs"J‚t|tƒrB|d t||ƒ¡q t|tƒr´|\}}}t|tƒrv|j}||}|j} n|j}|j}||} t|| |d�\}} |d t ||| ƒ¡q |dvsÀJ‚|dkr | g¡q t dd„|DƒƒS)Néÿÿÿÿ)rK)ÚandÚorrRcss|]}t|ƒVqdSr=)Úall)r/Úitemrrr r1¤r2z$_evaluate_markers..) r$r8r%r9ÚappendÚ_evaluate_markersrr&rMrIÚany) rNrOÚgroupsr+r'r(r)Zenvironment_keyZ lhs_valueZ rhs_valuerrr rV‰s(      rVzsys._version_info)Úinfor"cCs2d |¡}|j}|dkr.||dt|jƒ7}|S)Nz{0.major}.{0.minor}.{0.micro}Úfinalr)ÚformatÚ releaselevelr9Úserial)rYÚversionÚkindrrr Úformat_full_version§s  r`©r"cCs^ttjjƒ}tjj}||tjt ¡t ¡t  ¡t ¡t  ¡t  ¡d  t  ¡dd…¡tjdœ S)NrEé) Úimplementation_nameZimplementation_versionZos_nameZplatform_machineZplatform_releaseZplatform_systemÚplatform_versionZpython_full_versionZplatform_python_implementationÚpython_versionZ sys_platform)r`ÚsysÚimplementationr^ÚnameÚosÚplatformÚmachineÚreleaseÚsystemreZpython_implementationr;Zpython_version_tuple)Ziverrcrrr r¯s õrc@steZdZeddœdd„Zedœdd„Zedœdd „Zedœd d „Ze e d œd d„Z de e eefe dœdd„ZdS)rN)r+r"c CsJztt|ƒƒ|_Wn2tyD}ztt|ƒƒ|‚WYd}~n d}~00dSr=)r*Ú _parse_markerÚ_markersrrr9)Úselfr+Úerrr Ú__init__ÂszMarker.__init__racCs t|jƒSr=)r-ro©rprrr Ú__str__ÛszMarker.__str__cCs d|›d�S)Nz rrsrrr Ú__repr__ÞszMarker.__repr__cCst|jjt|ƒfƒSr=)ÚhashÚ __class__rr9rsrrr Ú__hash__ászMarker.__hash__)Úotherr"cCst|tƒstSt|ƒt|ƒkSr=)r$rÚNotImplementedr9)rpryrrr Ú__eq__äs z Marker.__eq__)rOr"cCs@tƒ}d|d<|dur4| |¡|ddur4d|d<t|j|ƒS)a$Evaluate a marker. Return the boolean from evaluating the given marker against the environment. environment is an optional argument to override all or part of the determined environment. The environment is determined from the current Python process. rDr#N)rÚupdaterVro)rprOZcurrent_environmentrrr Úevaluateês   zMarker.evaluate)N)rrrr9rrrtruÚintrxrÚboolr{rrr}rrrr rÁs r)T)3ÚoperatorrirjrfÚtypingrrrrrrrZ_parserr r r r rrrnZ _tokenizerrZ specifiersrrZutilsrÚ__all__r9rZOperatorÚ ValueErrorrrrr*r-ÚltÚleÚeqÚneÚgeÚgtrCÚ__annotations__rIrMrVr`rrrrrr ÚsD $   ÿþ ø