JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr ӓg,dZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z dgZ ejdZd d hZd Zd Zd ZGddeZejdZdZeZ[eZddZy)zG Parser for the environment markers micro-language defined in PEP 508. N) string_types)in_venv parse_marker) LegacyVersion interpretz<((\d+(\.\d+)*\w*)|\'(\d+(\.\d+)*\w*)\'|\"(\d+(\.\d+)*\w*)\")python_versionpython_full_versionc6t|txr|tvSN) isinstancer_VERSION_MARKERS)ss >/opt/hc_python/lib/python3.12/site-packages/distlib/markers.py_is_version_markerrs a & @10@+@@c6t|tr|sy|ddvS)NFr'")r r)os r _is_literalr"s a &a Q45=rctj|Dchc]}t|jd c}Scc}w)Nr)_VERSION_PATTERNfinditerLVgroups)rms r _get_versionsr(s6'7'@'@'C D'C!Bqxxz!} 'C DD Ds#>c LeZdZdZdddddddd d d d d d ZdZy) Evaluatorz< This class is used to evaluate marker expressions. c ||k(Sr xys rzEvaluator.216rc ||k(Sr r!r"s rr%zEvaluator.3sAFrc||k(xs||kDSr r!r"s rr%zEvaluator.416?QU?rc ||k7Sr r!r"s rr%zEvaluator.5r&rc ||kSr r!r"s rr%zEvaluator.6!a%rc||k(xs||kSr r!r"s rr%zEvaluator.7r)rc ||kDSr r!r"s rr%zEvaluator.8r,rc||k(xs||kDSr r!r"s rr%zEvaluator.9r)rc|xr|Sr r!r"s rr%zEvaluator.:s AG!Grc|xs|Sr r!r"s rr%zEvaluator.;s 166rc ||vSr r!r"s rr%zEvaluator.<s16rc ||vSr r!r"s rr%zEvaluator.=sqzr) =====~=!=<<=>>=andorinnot incnt|tr'|ddvr|dd}|S||vrtd|z||}|St|tsJ|d}||jvrt d|z|d}|d }t |dr"t |d rtd |d |d ||j||}|j||}t|s t|r|d vrt|}t|}n%t|r|d vrt|}t|}|j|||}|S)z Evaluate a marker expression returned by the :func:`parse_requirement` function in the specified context. rrrzunknown variable: %sopzop not implemented: %slhsrhszinvalid comparison:  )r8r9r:r;r5r4r7r6)r>r?) r r SyntaxErrordict operationsNotImplementedErrorrevaluaterrr) selfexprcontextresultrBelhserhsrCrDs rrJzEvaluator.evaluate@sT dL )Aw%a2 /w&%&.format_full_versionhsM $ DJJ C   7? tAwT[[!11 1Grimplementation0r) implementation_nameimplementation_versionos_nameplatform_machineplatform_python_implementationplatform_releaseplatform_systemplatform_versionplatform_in_venvr r sys_platform)hasattrsysrcr`nameplatformr _DIGITSmatchgrouposmachinepython_implementationreleasesystemr]r)rbrgrfppvrpvrNs rdefault_contextr~fss$%!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 ExceptionrFrGDEFAULT_CONTEXTupdate evaluatorrJ)markerexecution_contextrLresterMs rrrsU!&) d Q3&RVWXX?#G()   dG ,, UQRSTTUsA## B,A==Br )rTrwrerqrscompatrutilrrr`rr__all__compilerrrrrobjectrrtr~rrrr!rrrs  '( -2::]^$&;<A E44n "**[ !!H"# K -r