j7i/ \UddlmZddlZddlZddlZddlZddlmZmZm Z m Z m Z m Z m Z ddlmZmZmZmZmZddlmZddlmZddlmZmZdd lmZgd Ze ee eeefgefZ e d Z!d d hZ"Gdde#Z$Gdde#Z%Gdde#Z&Gdde Z'd%dZ( d& d'dZ)ddejTejVejXejZej\ej^dZ0de1d<d(dZ2 d)dZ3 d*dZ4d+d Z5d,d!Z6Gd"d#Z7 d-d$Z8y).) annotationsN) AbstractSetAnyCallableLiteral TypedDictUnioncast) MarkerAtom MarkerListOpValueVariable) parse_marker)ParserSyntaxError)InvalidSpecifier Specifier)canonicalize_name)EvaluateContext InvalidMarkerMarkerUndefinedComparisonUndefinedEnvironmentNamedefault_environment)metadata lock_file requirementextrasdependency_groupsceZdZdZy)rzE An invalid marker was found, users should refer to PEP 508. N__name__ __module__ __qualname____doc__Z/mnt/ssd/data/python-lab/ChefSystem/venv/lib/python3.12/site-packages/packaging/markers.pyrr!r(rceZdZdZy)rzP An invalid operation was attempted on a value that doesn't support it. Nr"r'r(r)rr'r*r(rceZdZdZy)rz\ A name was attempted to be used that does not exist inside of the environment. Nr"r'r(r)rr-sr(rceZdZUded< ded< ded< ded< ded< ded< ded< ded < ded < ded < ded <y ) Environmentstrimplementation_nameimplementation_versionos_nameplatform_machineplatform_releaseplatform_systemplatform_versionpython_full_versionplatform_python_implementationpython_version sys_platformN)r#r$r%__annotations__r'r(r)r.r.4s> L     %('9r(r.cLt|dtr|d\}}}t|tr0|jdk(r!t |j}t |}n?t|tr/|jdk(r t |j}t |}|||f|d<|S)z! Normalize extra values. rextra) isinstancetuplervaluerr)resultslhsoprhsnormalized_extras r)_normalize_extra_valuesrF|s'!*e$qz R c8 $g)=0; ()C X &399+?0; ()C"c\ Nr(ct|tttfsJt|tr5t |dk(r't|dttfrt |dSt|tr3d|D}|rdj |Sddj |zdzSt|tr-dj |Dcgc]}|jc}S|Scc}w)Nr rc36K|]}t|dyw)F)firstN)_format_marker).0ms r) z!_format_marker..s@A//@s ())r>listr?r/lenrJjoin serialize)markerrIinnerrLs r)rJrJs ftUC0 11 1 64 K1  vay4- 0fQi((&$@@ 88E? "%(3. . FE "xx71788 8sC%c ||vSNr'rBrDs r)rZs 3#:r(c ||vSrXr'rYs r)rZrZs s#~r()inznot in=>zdict[str, Operator] _operatorsc Bt|tr> tdj|j |g}|j |dStj|j }|td|d|d|d|||S#t $rYNwxYw)NT) prereleasesz Undefined z on z and .) r>r/rrSrTcontainsrr_getr)rBrCrDspecopers r)_eval_oprhs#s 8RWWbllnc%:;:D |!JrfDuSG1"MNN S>    s*B BBc|dk(r-t|tsJdt|t|fS|tvrJt|trt|t|fSt||Dchc] }t|c}fS||fScc}w)Nr=zextra value must be a string)r>r/rMARKERS_ALLOWING_SET)rBrDkeyvs r) _normalizerms g~#s#C%CC#!#&(9#(>?? "" c3 %c*,=c,BC C%c*3,Oa->q-A,OP P 8O-Ps/B cdgg}|D]}t|tttfsJt|tr|dj t ||Pt|tr|\}}}t|t r|j}||}|j} n|j}|j}||} t|tsJdt|| |\}} |dj t||| |dvsJ|dk(s|j gtd|DS)Nzlhs must be a string)rk)andorrqc32K|]}t|ywrX)all)rKitems r)rMz$_evaluate_markers..s,Ts4y,s) r>rQr?r/append_evaluate_markersrr@rmrhany) markers environmentgroupsrUrBrCrDenvironment_key lhs_value rhs_values r)rvrvs$!#tF"&4"4555 fd # 2J  / D E  &!LCS#x("%))'8 II II "%))'8 i- E/E E-#-i#X Iy 2J  hy"i@ A]* **~ b!-"0 ,V, ,,r(c|jd|jd|j}|j}|dk7r||dt |j zz }|S)Nrcfinalr)majorminormicro releaselevelr/serial)infoversionkinds r)format_full_versionrsW Adjj\4::,7G   D w47S--- Nr(cttjj}tjj}||t jt jt jt jt jt jt jdjt jddtj d S)Nrc) r0r1r2r3r4r5r6r7r8r9r:)rsysimplementationrnameosplatformmachinereleasesystemr9python_implementationrSpython_version_tuple)iverr0s r)rrs s1199 :D,,112"&77$,,.$,,.#??,$,,.'668*2*H*H*J((8#@#@#B2A#FG   r(cLeZdZddZd dZd dZd dZd dZ d d dZy)rc tt||_y#t$r}t t ||d}~wwxYwrX)rF _parse_marker_markersrrr/)selfrUes r)__init__zMarker.__init__s; /3M&4IJDM"! /A'Q . /s ?:?c,t|jSrX)rJrrs r)__str__zMarker.__str__,sdmm,,r(cd|dS)Nz r'rs r)__repr__zMarker.__repr__/s4&$$r(cVt|jjt|fSrX)hash __class__r#r/rs r)__hash__zMarker.__hash__2s T^^,,c$i899r(c\t|tstSt|t|k(SrX)r>rNotImplementedr/)rothers r)__eq__z Marker.__eq__5s%%(! !4yCJ&&r(Nctdt}|dk(r$|jttn |dk(rd|d<||j|d|vr |dd|d<t |j t |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 *context* parameter specifies what context the markers are being evaluated for, which influences what markers are considered valid. Acceptable values are "metadata" (for core metadata; default), "lock_file", and "requirement" (i.e. all other situations). The environment is determined from the current Python process. !dict[str, str | AbstractSet[str]]r)rr rrar=)r rupdate frozensetrvr_repair_python_full_version)rrycontextcurrent_environments r)evaluatezMarker.evaluate;s # /1D1F  k !  & & {ik '  "+-  (  "  & &{ 3--2Eg2N2V/1#G, MM67JK  r()rUr/returnNone)rr/)rint)rrrbool)Nr)ryzdict[str, str] | Nonerrrr) r#r$r%rrrrrrr'r(r)rrsD/2-%:'.2#-" *" !"   " r(rc^tt|d}|jdr|d|d<|S)z Work around platform.python_version() returning something that is not PEP 440 compliant for non-tagged Python builds. r7+local)r r/endswith)envr7s r)rr`s=sC(=$>?##C((;'rs #  NNN@@2)3$  S%[%5 567= >@A "56J * zE)EP "@D (1<: &-  ++ ++ ++ ++  #     )03'(- -&G- -@$K K \  * & r(