Ë ÝaÜæ¤Ð%Wãóú—dZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z dgZ ejd«Zd d hZd „Zd „Zd „ZGd„de«Zejd«Zd„Ze«Z[e«Zdd„Zy)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_versionÚpython_full_versioncó6—t|t«xr|tvS©N)Ú isinstancerÚ_VERSION_MARKERS)Úss ú4/usr/lib/python3.12/site-packages/distlib/markers.pyÚ_is_version_markerrs€Ü �aœÓ &Ò @¨1Ô0@Ð+@Ð@ócó6—t|t«r|sy|ddvS)NFrú'")r r)Úos rÚ _is_literalr#s€Ü �aœÔ &©aØØ ˆQ‰4�5ˆ=Ðrcó†—tj|«D�chc]}t|j«d«’Œ c}Scc}w)Nr)Ú_VERSION_PATTERNÚfinditerÚLVÚgroups)rÚms rÚ _get_versionsr)s6€Ü'7×'@Ñ'@ÀÔ'CÓ DÑ'C !ŒBˆq�x‰x‹z˜!‰}Õ Ð'CÑ DÐDùÒ Ds˜#>c óL—eZdZdZd„d„d„d„d„d„d„d „d „d „d „d „dœ Zd„Zy)Ú Evaluatorz< This class is used to evaluate marker expressions. có —||k(Sr ©©ÚxÚys rÚzEvaluator.3ó€˜1 š6rcó —||k(Sr r!r"s rr%zEvaluator.4s€˜A šFrcó—||k(xs||kDSr r!r"s rr%zEvaluator.5ó€˜1 ™6š? Q¨¡U˜?rcó —||k7Sr r!r"s rr%zEvaluator.6r&rcó —||kSr r!r"s rr%zEvaluator.7ó€˜!˜aš%rcó—||k(xs||kSr r!r"s rr%zEvaluator.8r)rcó —||kDSr r!r"s rr%zEvaluator.9r,rcó—||k(xs||kDSr r!r"s rr%zEvaluator.:r)rcó—|xr|Sr r!r"s rr%zEvaluator.;s €˜AšG !˜Grcó—|xs|Sr r!r"s rr%zEvaluator.<s €˜1š6 ˜6rcó —||vSr r!r"s rr%zEvaluator.=s€˜1 ™6rcó —||vSr r!r"s rr%zEvaluator.>s€˜q¨™zr) ú==ú===ú~=ú!=Ú<ú<=Ú>ú>=ÚandÚorÚinúnot incón—t|t«r'|ddvr|dd}|S||vrtd|z«‚||}|St|t«sJ‚|d}||jvrt d|z«‚|d}|d }t |d«r"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. rrréÿÿÿÿzunknown variable: %sÚopzop not implemented: %sÚlhsÚrhszinvalid comparison: Ú )r8r9r:r;r5r4r7r6)r>r?) r rÚ SyntaxErrorÚdictÚ operationsÚNotImplementedErrorrÚevaluaterrr) ÚselfÚexprÚcontextÚresultrBÚelhsÚerhsrCrDs rrJzEvaluator.evaluateAs]€ô �dœLÔ )Ø�A‰w˜%ÑØ˜a ˜�ð4ˆ ð1˜wÑ&Ü%Ð&<¸tÑ&CÓDÐDØ  ™�ð,ˆ ô)˜d¤DÔ)Ð )Ð)Ø�d‘ˆBؘŸ™Ñ(Ü)Ð*BÀRÑ*GÓHÐHؘ‘;ˆDؘ‘;ˆDܘ4 ™;Ô'¬K¸¸U¹ Ô,DÝ!Ú#'ª©Tð#3ó4ð4ð—-‘-  gÓ.ˆCØ—-‘-  gÓ.ˆCÜ# DÔ)Ô-?ÀÔ-EØÐMÑMܘ“g�ܘ“g‘Ü# DÔ)¨bÐ4DÑ.Dܘ“g�Ü# CÓ(�Ø(�T—_‘_ RÑ(¨¨cÓ2ˆF؈ rN)Ú__name__Ú __module__Ú __qualname__Ú__doc__rHrJr!rrrr-s9„ññ "Ù"Ù*Ù!Ù Ù*Ù Ù*Ù#Ù!Ù!Ù)ñ €Jó!rrz\d+\.\d+c óJ—d„}ttd«r;|tjj«}tjj}nd}d}t j «}tj|«}|jd«}||tjt j«t j«t j«t j«t j«tt!««||tj dœ }|S)Ncó´—|j›d|j›d|j›�}|j}|dk7r||dt |j «zz }|S)NÚ.Úfinalr)ÚmajorÚminorÚmicroÚ releaselevelÚstrÚserial)ÚinfoÚversionÚkinds rÚformat_full_versionz,default_context..format_full_versionjsM€Ø $§ £ ¨D¯J«J¸¿ º ÐCˆØ× Ñ ˆØ �7Š?Ø �t˜A‘w¤ T§[¡[Ó!1Ñ1Ñ 1ˆG؈rÚimplementationÚ0Úr) Úimplementation_nameÚimplementation_versionÚos_nameÚplatform_machineÚplatform_python_implementationÚplatform_releaseÚplatform_systemÚplatform_versionÚplatform_in_venvr r Ú sys_platform)ÚhasattrÚsysrcr`ÚnameÚplatformr Ú_DIGITSÚmatchÚgroupÚosÚmachineÚpython_implementationÚreleaseÚsystemr]r)rbrgrfÚppvrÚpvrNs rÚdefault_contextr~hsà€òôŒsÐ$Ô%Ù!4Ü × Ñ × &Ñ &ó"(Ðä!×0Ñ0×5Ñ5Ñà!$ÐØ Ðä × !Ñ !Ó #€CÜ� ‰ �cÓ€AØ �‰�‹€Bà2Ø"8Ü—7‘7Ü$×,Ñ,Ó.Ü*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Ú ExceptionrFrGÚDEFAULT_CONTEXTÚupdateÚ evaluatorrJ)ÚmarkerÚexecution_contextrLÚrestÚerMs rrr“s‘€ð'Ü! &Ó)‰ ˆˆdñ ��Q‘˜3’ÝÚ!¡4ð)ó*ð *ä”?Ó#€GÙØ�‰Ð(Ô)Ü × Ñ ˜d GÓ ,Ð,øô ò'ÝÚ!¡1ð&ó'ð 'ûð'ús‚A#Á# BÁ,A=Á=Br )rTrwÚrerqrsÚcompatrÚutilrrr`rrÚ__all__ÚcompilerrrrrÚobjectrrtr~r‚r„rr!rrÚr�s˜ðñó Û Û Ûå ß'Ý(à ˆ-€à�2—:‘:ØCóEÐà$Ð&;Ð<ÐòAòò Eô5�ô5ðp ˆ"�*‰*�[Ó !€ò"ñJ"Ó#€Øá ‹K€ ô-r