VULN_CHECK_I913V6 jdZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z dgZ ejdZd Zd ZGd d eZejd ZdZeZ[eZddZy)zG Parser for the environment markers micro-language defined in PEP 508. N) string_types)in_venv parse_marker)NormalizedVersion interpretz<((\d+(\.\d+)*\w*)|\'(\d+(\.\d+)*\w*)\'|\"(\d+(\.\d+)*\w*)\")c6t|tr|sy|ddvS)NFr'") isinstancer)os @/usr/lib/python3.12/site-packages/pip/_vendor/distlib/markers.py _is_literalrs a &a Q45=cg}tj|D]-}|jt|j d/t |S)Nr)_VERSION_PATTERNfinditerappendNVgroupsset)sresultms r _get_versionsr!sA F  & &q ) bA'(* v;rc LeZdZdZdddddddd d d d d d ZdZy) Evaluatorz; This class is used to evaluate marker expessions. c ||k(SNxys r zEvaluator.-16rc ||k(Srrr s r r#zEvaluator..sAFrc||k(xs||kDSrrr s r r#zEvaluator./s16?QU?rc ||k7Srrr s r r#zEvaluator.0r$rc ||kSrrr s r r#zEvaluator.11q5rc||k(xs||kSrrr s r r#zEvaluator.2AFOa!eOrc ||kDSrrr s r r#zEvaluator.3r)rc||k(xs||kDSrrr s r r#zEvaluator.4r+rc|xr|Srrr s r r#zEvaluator.5s AG!Grc|xs|Srrr s r r#zEvaluator.6s 166rc ||vSrrr s r r#zEvaluator.7s16rc ||vSrrr s r r#zEvaluator.8sqzr) =====~=!=<<=>>=andorinnot incJt|tr'|ddvr|dd}|S||vrtd|z||}|St|tsJ|d}||jvrt d|z|d}|d }t |dr"t |d rtd |d |d ||j||}|j||}|d k(s|d k(r|d vrt|}t|}n|d k(r|dvrt|}t|}|j|||}|S)z Evaluate a marker expression returned by the :func:`parse_requirement` function in the specified context. rr rzunknown variable: %sopzop not implemented: %slhsrhszinvalid comparison:  python_version)r6r7r8r9r3r2r5r4)r<r=) r r SyntaxErrordict operationsNotImplementedErrorrevaluaterr) selfexprcontextrr@elhserhsrArBs r rIzEvaluator.evaluate;sV dL )Aw%a2 /w&%&.format_full_version`sM $ DJJ C   7? tAwT[[!11 1Grimplementation0r) implementation_nameimplementation_versionos_nameplatform_machineplatform_python_implementationplatform_releaseplatform_systemplatform_versionplatform_in_venvpython_full_versionrD sys_platform)hasattrsysrar^nameplatformrD_DIGITSmatchgrouposmachinepython_implementationreleasesystemr[r)r`rerdppvrpvrs r default_contextr}_ss$%!4S5G5G5O5O!P!0055!$   ! ! #C cA B2"877$,,.*2*H*H*J$,,.#??,$,,. N"  F Mrc  t|\}}|r|ddk7rtd|d|tt}|r|j |t j||S#t$r}td|d|d}~wwxYw)z Interpret a marker and return a result depending on environment. :param marker: The marker to interpret. :type marker: str :param execution_context: The context used for name lookup. :type execution_context: mapping z#Unable to interpret marker syntax: z: Nr#z$unexpected trailing data in marker: )r ExceptionrErFDEFAULT_CONTEXTupdate evaluatorrI)markerexecution_contextrKresterLs r rrsU!&) d Q3&RVWXX?#G()   dG ,, UQRSTTUsA## B,A==Br)rRrvrerprrcompatrutilrrr^rr__all__compilerrrobjectrrsr}rrrrrr rs  ', -2::]^  44l "**[ ! D"# K -r