Ë
    æØjjŸB  ã            	      óZ  — U d dl mZ d dlZd dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZmZmZ ddlmZmZmZmZmZ ddlmZ ddlmZ ddlmZmZ dd	lmZ g d
¢Zd*d„Zeeeeee   f   ge f   Z!e	d   Z"	 ddhZ#h d£Z$ G d„ de%«      Z& G d„ de%«      Z' G d„ de%«      Z( G d„ de«      Z)	 	 	 	 d+d„Z*d,d„Z+	 d-	 	 	 	 	 d.d„Z,d„ d„ d„ ejZ                  ejZ                  ej\                  ejZ                  d„ dœZ/d e0d!<   d/d"„Z1	 	 	 	 	 	 	 	 d0d#„Z2	 	 	 	 	 	 d1d$„Z3d2d%„Z4d3d&„Z5 G d'„ d(«      Z6	 	 	 	 d4d)„Z7y)5é    )ÚannotationsN)ÚAbstractSetÚCallableÚLiteralÚMappingÚ	TypedDictÚUnionÚcasté   )Ú
MarkerAtomÚ
MarkerListÚOpÚValueÚVariable)Úparse_marker)ÚParserSyntaxError)ÚInvalidSpecifierÚ	Specifier)Úcanonicalize_name)ÚEnvironmentÚEvaluateContextÚInvalidMarkerÚMarkerÚUndefinedComparisonÚUndefinedEnvironmentNameÚdefault_environmentc                 ó   — t         S ©N)Ú__all__© ó    úS/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/packaging/markers.pyÚ__dir__r#      s   € Ü€Nr!   )ÚmetadataÚ	lock_fileÚrequirementÚextrasÚdependency_groups>   Úpython_versionÚplatform_releaseÚpython_full_versionÚimplementation_versionc                  ó   — e Zd ZdZy)r   zëRaised when attempting to create a :class:`Marker` from invalid input.

    This error indicates that the given marker string does not conform to the
    :ref:`specification of dependency specifiers <pypug:dependency-specifiers>`.
    N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r    r!   r"   r   r   6   s   „ òr!   r   c                  ó   — e Zd ZdZy)r   zçRaised when evaluating an unsupported marker comparison.

    This can happen when marker values are compared as versions but do not
    conform to the :ref:`specification of version specifiers
    <pypug:version-specifiers>`.
    Nr.   r    r!   r"   r   r   >   s   „ òr!   r   c                  ó   — e Zd ZdZy)r   zJRaised when evaluating a marker that references a missing environment key.Nr.   r    r!   r"   r   r   G   s   „ ÚTr!   r   c                  ó”   — e Zd ZU dZded<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded<   	 ded	<   	 ded
<   	 ded<   	 ded<   	 ded<   y)r   z„
    A dictionary that represents a Python environment as captured by
    :func:`default_environment`. All fields are required.
    ÚstrÚimplementation_namer,   Úos_nameÚplatform_machiner*   Úplatform_systemÚplatform_versionr+   Úplatform_python_implementationr)   Úsys_platformN)r/   r0   r1   r2   Ú__annotations__r    r!   r"   r   r   K   s�   … ñð
 ÓØ>àÓðð
 ƒLðð
 Óðð Óðð Óðð Óðð Óðð %(Ó'ðð ÓØ9àÓðr!   r   c                ó:  — t        | t        «      s| S | \  }}}t        |t        «      r0|j                  dk(  r!t	        |j                  «      }t        |«      }n?t        |t        «      r/|j                  dk(  r t	        |j                  «      }t        |«      }|||fS )NÚextra)Ú
isinstanceÚtupler   Úvaluer   r   )ÚresultÚlhsÚopÚrhsÚnormalized_extras        r"   Ú_normalize_extrasrI   ˜   sˆ   € ô �fœeÔ$Øˆà�L€CˆˆSÜ�#”xÔ  S§Y¡Y°'Ò%9Ü,¨S¯Y©YÓ7ÐÜÐ$Ó%‰Ü	�CœÔ	" s§y¡y°GÒ';Ü,¨S¯Y©YÓ7ÐÜÐ$Ó%ˆØ��Cˆ<Ðr!   c                ó>   — | D �cg c]  }t        |«      ‘Œ c}S c c}w )z!
    Normalize extra values.
    )rI   )ÚresultsÚrs     r"   Ú_normalize_extra_valuesrM   ¨   s   € ð
 +2Ö2 QÔ˜aÕ Ò2Ð2ùÒ2s   …c                óÔ  — t        | t        t        t        f«      sJ ‚t        | t        «      r5t	        | «      dk(  r't        | d   t        t        f«      rt        | d   «      S t        | t        «      r3d„ | D «       }|rdj                  |«      S ddj                  |«      z   dz   S t        | t        «      r-dj                  | D �cg c]  }|j                  «       ‘Œ c}«      S | S c c}w )Nr   r   c              3  ó6   K  — | ]  }t        |d ¬«      –— Œ y­w)F)ÚfirstN)Ú_format_marker)Ú.0Úms     r"   ú	<genexpr>z!_format_marker.<locals>.<genexpr>Á   s   è ø€ Ò@°A” ¨×/Ð/Ñ@ùs   ‚ú ú(ú))rA   ÚlistrB   r6   ÚlenrQ   ÚjoinÚ	serialize)ÚmarkerrP   ÚinnerrS   s       r"   rQ   rQ   °   sÅ   € ô �fœt¤U¬CÐ0Ô1Ð1Ð1ô 	�6œ4Ô Ü�‹K˜1ÒÜ�v˜a‘y¤4¬ -Ô0ä˜f Q™iÓ(Ð(ä�&œ$ÔÙ@¸Ô@ˆÙØ—8‘8˜E“?Ð"à˜Ÿ™ %›Ñ(¨3Ñ.Ð.Ü	�FœEÔ	"Ø�x‰x°Ö7¨1˜Ÿ™�Ò7Ó8Ð8àˆùò 8s   ÃC%c                ó
   — | |v S r   r    ©rE   rG   s     r"   ú<lambda>r`   Í   s
   € ˜3 #˜:€ r!   c                ó
   — | |vS r   r    r_   s     r"   r`   r`   Î   s
   € ˜s¨#˜~€ r!   c                 ó   — y©NFr    ©Ú_lhsÚ_rhss     r"   r`   r`   Ï   ó   � r!   c                 ó   — yrc   r    rd   s     r"   r`   r`   Ô   rg   r!   )Úinznot inú<z<=z==z!=z>=ú>zdict[str, Operator]Ú
_operatorsc          	     ó   — |j                  «       }|t        v r#	 t        |› |› �«      }|j                  | d¬«      S t
        j                  |«      }|€t        d|›d| ›d|›d�«      ‚ || |«      S # t        $ r Y Œ@w xY w)NT)Úprereleasesz
Undefined z on z and ú.)r[   ÚMARKERS_REQUIRING_VERSIONr   Úcontainsr   rl   Úgetr   )rE   rF   rG   ÚkeyÚop_strÚspecÚopers          r"   Ú_eval_oprw   Ø   s–   € Ø�\‰\‹^€FØ
Ô'Ñ'ð	8Ü ˜x¨ uÐ-Ó.ˆDð —=‘= °$�=Ó7Ð7ä&ŸN™N¨6Ó2€DØ€|Ü! J¨r¨f°D¸¸¸uÀSÀGÈ1Ð"MÓNÐNá��S‹>Ðøô  ò 	Ùð	ús   šA1 Á1	A=Á<A=c                óø   — |dk(  rt        |t        «      sJ d«       ‚| |fS |t        v rJt        |t        «      rt        | «      t        |«      fS t        | «      |D �ch c]  }t        |«      ’Œ c}fS | |fS c c}w )Nr@   zextra value must be a string)rA   r6   ÚMARKERS_ALLOWING_SETr   )rE   rG   rs   Úvs       r"   Ú
_normalizer{   é   s†   € ð ˆg‚~Ü˜#œsÔ#ÐCÐ%CÓCÐ#à�SˆzÐØ
Ô"Ñ"Ü�cœ3ÔÜ% cÓ*Ô,=¸cÓ,BÐCÐCä% cÓ*È3Ö,OÀaÔ->¸qÕ-AÒ,OÐPÐPð �ˆ8€Oùò -Ps   ÁA7c           	     óD  — g g}| D �]  }t        |t        «      r|d   j                  t        ||«      «       Œ3t        |t        «      r›|\  }}}t        |t
        «      r|j                  }||   }|j                  }	n|j                  }|j                  }||   }	t        |t        «      sJ d«       ‚t        ||	|¬«      \  }}	|d   j                  t        |||	|¬«      «       ŒÞ|dk(  r|j                  g «       Œõ|dk(  rŒût        d|›�«      ‚ t        d„ |D «       «      S )Néÿÿÿÿzlhs must be a string)rs   ÚorÚandzUnexpected marker c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wr   )Úall)rR   Úitems     r"   rT   z$_evaluate_markers.<locals>.<genexpr>  s   è ø€ Ò,˜TŒs�4�yÑ,ùs   ‚)rA   rX   ÚappendÚ_evaluate_markersrB   r   rC   r6   r{   rw   Ú	TypeErrorÚany)
ÚmarkersÚenvironmentÚgroupsr\   rE   rF   rG   Úenvironment_keyÚ	lhs_valueÚ	rhs_values
             r"   r„   r„   þ   s  € ð !#˜t€Fàó =ˆÜ�fœdÔ#Ø�2‰J×ÑÔ/°¸ÓDÕEÜ˜¤Ô&Ø!‰LˆC��Sä˜#œxÔ(Ø"%§)¡)�Ø'¨Ñ8�	ØŸI™I‘	àŸI™I�	Ø"%§)¡)�Ø'¨Ñ8�	ä˜i¬Ô-ÐEÐ/EÓEÐ-Ü#-¨i¸ÈÔ#XÑ ˆI�yØ�2‰J×Ñœh y°"°iÀ_ÔUÕVØ�tŠ^Ø�M‰M˜"ÕØ�uŠ_ØäÐ0°°
Ð;Ó<Ð<ð/=ô2 Ñ, VÔ,Ó,Ð,r!   c                ó´   — | j                   › d| j                  › d| j                  › �}| j                  }|dk7  r||d   t	        | j
                  «      z   z  }|S )Nro   Úfinalr   )ÚmajorÚminorÚmicroÚreleaselevelr6   Úserial)ÚinfoÚversionÚkinds      r"   Ú_format_full_versionr—     sW   € Ø—‘�˜A˜dŸj™j˜\¨¨4¯:©:¨,Ð7€GØ×Ñ€DØˆw‚Ø�4˜‘7œS §¡Ó-Ñ-Ñ-ˆØ€Nr!   c                 óð  — t        t        j                  j                  «      } t        j                  j                  }|| t
        j                  t        j                  «       t        j                  «       t        j                  «       t        j                  «       t        j                  «       t        j                  «       dj                  t        j                  «       dd «      t        j                  dœS )z�Return the default marker environment for the current Python process.

    This is the base environment used by :meth:`Marker.evaluate`.
    ro   Né   )r7   r,   r8   r9   r*   r:   r;   r+   r<   r)   r=   )r—   ÚsysÚimplementationr•   ÚnameÚosÚplatformÚmachineÚreleaseÚsystemr)   Úpython_implementationrZ   Úpython_version_tuple)Úiverr7   s     r"   r   r   '  s¬   € ô
  ¤× 2Ñ 2× :Ñ :Ó;€DÜ×,Ñ,×1Ñ1Ðà2Ø"&Ü—7‘7Ü$×,Ñ,Ó.Ü$×,Ñ,Ó.Ü#Ÿ?™?Ó,Ü$×,Ñ,Ó.Ü'×6Ñ6Ó8Ü*2×*HÑ*HÓ*JØŸ(™(¤8×#@Ñ#@Ó#BÀ2ÀAÐ#FÓGÜŸ™ñð r!   c                  ó†   — e Zd ZdZdZdd„Zedd„«       Zdd„Zdd„Z	dd„Z
dd„Zdd	„Zdd
„Zdd„Zdd„Z	 	 d	 	 	 	 	 dd„Zy)r   aê  Represents a parsed dependency marker expression.

    Marker expressions are parsed according to the
    :ref:`specification of dependency specifiers <pypug:dependency-specifiers>`.

    :param marker: The string representation of a marker expression.
    :raises InvalidMarker: If ``marker`` cannot be parsed.

    Instances are safe to serialize with :mod:`pickle`. They use a stable
    format so the same pickle can be loaded in future packaging releases.

    .. versionchanged:: 26.2

        Added a stable pickle format. Pickles created with packaging 26.2+ can
        be unpickled with future releases.  Backward compatibility with pickles
        from packaging < 26.2 is supported but may be removed in a future
        release.
    )Ú_markersc                ó’   — g | _         	 t        t        |«      «      | _         y # t        $ r}t	        t        |«      «      |‚d }~ww xY wr   )r¦   rM   Ú_parse_markerr   r   r6   )Úselfr\   Úes      r"   Ú__init__zMarker.__init__S  sD   € ð %'ˆŒð	/Ü3´MÀ&Ó4IÓJˆD�Møô" !ò 	/Ü¤ A£Ó'¨QÐ.ûð	/ús   ‰# £	A¬AÁAc                ó6   — | j                  | «      }||_        |S )z’Create a Marker instance from a pre-parsed marker tree.

        This avoids re-parsing serialised marker strings when combining markers.
        )Ú__new__r¦   )Úclsr‡   Únews      r"   Ú_from_markerszMarker._from_markersq  s   € ð �k‰k˜#ÓˆØˆŒØˆ
r!   c                ó,   — t        | j                  «      S r   )rQ   r¦   ©r©   s    r"   Ú__str__zMarker.__str__{  s   € Ü˜dŸm™mÓ,Ð,r!   c                óN   — d| j                   j                  › dt        | «      ›d�S )Nrj   rV   z)>)Ú	__class__r/   r6   r²   s    r"   Ú__repr__zMarker.__repr__~  s&   € Ø�4—>‘>×*Ñ*Ð+¨1¬S°«Y¨M¸Ð<Ð<r!   c                ó*   — t        t        | «      «      S r   )Úhashr6   r²   s    r"   Ú__hash__zMarker.__hash__�  s   € Ü”C˜“I‹Ðr!   c                ó\   — t        |t        «      st        S t        | «      t        |«      k(  S r   )rA   r   ÚNotImplementedr6   ©r©   Úothers     r"   Ú__eq__zMarker.__eq__„  s%   € Ü˜%¤Ô(Ü!Ð!ä�4‹yœC ›JÑ&Ð&r!   c                ó   — t        | «      S r   )r6   r²   s    r"   Ú__getstate__zMarker.__getstate__Š  s   € ô �4‹yÐr!   c                ó¾  — t        |t        «      r	 t        t        |«      «      | _        y t        |t        «      r!d|v r|d   }t        |t        «      r|| _        y t        |t        «      rDt        |«      dk(  r6|\  }}t        |t        «      r!d|v r|d   }t        |t        «      r|| _        y t        d|›�«      ‚# t
        $ r}t        d|›�«      |‚d }~ww xY w)NzCannot restore Marker from r¦   r™   )rA   r6   rM   r¨   r¦   r   r…   ÚdictrX   rB   rY   )r©   ÚstateÚexcr‡   Ú_Ú	slot_dicts         r"   Ú__setstate__zMarker.__setstate__�  sß   € Ü�eœSÔ!ðRÜ 7¼ÀeÓ8LÓ M�”ð Ü�eœTÔ" z°UÑ':à˜JÑ'ˆGÜ˜'¤4Ô(Ø '�”ØÜ�eœUÔ#¬¨E«
°aªà ‰LˆAˆyÜ˜)¤TÔ*¨z¸YÑ/FØ# JÑ/�Ü˜g¤tÔ,Ø$+�D”MØÜÐ5°e°YÐ?Ó@Ð@øô# %ò RÜÐ"=¸e¸YÐ GÓHÈcÐQûðRús   ’B? Â?	CÃCÃCc                ó~   — t        |t        «      st        S | j                  | j                  d|j                  g«      S )Nr   ©rA   r   r»   r°   r¦   r¼   s     r"   Ú__and__zMarker.__and__§  s2   € Ü˜%¤Ô(Ü!Ð!Ø×!Ñ! 4§=¡=°%¸¿¹Ð"HÓIÐIr!   c                ó~   — t        |t        «      st        S | j                  | j                  d|j                  g«      S )Nr~   rÉ   r¼   s     r"   Ú__or__zMarker.__or__¬  s2   € Ü˜%¤Ô(Ü!Ð!Ø×!Ñ! 4§=¡=°$¸¿¹Ð"GÓHÐHr!   Nc                ó>  — t        dt        «       «      }|dk(  r$|j                  t        «       t        «       ¬«       n
|dk(  rd|d<   |�6|j                  |«       d|v r!t        d|d   «      }|rt	        |«      nd|d<   t        | j                  t        |«      «      S )a"  Evaluate a marker.

        Return the boolean from evaluating this marker against the environment.
        The environment is determined from the current Python process unless
        passed in explicitly.

        :param environment: Mapping containing keys and values to override the
           detected environment.
        :param EvaluateContext context: The context in which the marker is
            evaluated, which influences what marker names are considered valid.
            Accepted values are ``"metadata"`` (for core metadata; default),
            ``"lock_file"``, and ``"requirement"`` (i.e. all other situations).
        :raises UndefinedComparison: If the marker uses a comparison on values
            that are not valid versions per the :ref:`specification of version
            specifiers <pypug:version-specifiers>`.
        :raises UndefinedEnvironmentName: If the marker references a value that
            is missing from the evaluation environment.
        :returns: ``True`` if the marker matches, otherwise ``False``.

        ú!dict[str, str | AbstractSet[str]]r%   )r'   r(   r$   Ú r@   z
str | None)r
   r   ÚupdateÚ	frozensetr   r„   r¦   Ú_repair_python_full_version)r©   rˆ   ÚcontextÚcurrent_environmentr@   s        r"   ÚevaluatezMarker.evaluate±  s·   € ô2 #Ø/Ô1DÓ1Fó
Ðð �kÒ!Ø×&Ñ&Ü “{´i³kð 'õ ð ˜
Ò"Ø+-Ð Ñ(àÐ"Ø×&Ñ& {Ô3ØÐ-Ñ-ô ˜\Ð+>¸wÑ+GÓH�ÙKPÔ/@ÀÔ/GÐVXÐ# GÑ,ä Ø�M‰MÔ6Ð7JÓKó
ð 	
r!   )r\   r6   ÚreturnÚNone)r‡   r   rÖ   r   )rÖ   r6   )rÖ   Úint)r½   ÚobjectrÖ   Úbool)rÃ   rÙ   rÖ   r×   )r½   r   rÖ   r   )Nr$   )rˆ   z+Mapping[str, str | AbstractSet[str]] | NonerÓ   r   rÖ   rÚ   )r/   r0   r1   r2   Ú	__slots__r«   Úclassmethodr°   r³   r¶   r¹   r¾   rÀ   rÇ   rÊ   rÌ   rÕ   r    r!   r"   r   r   =  s}   „ ñð& €Ió/ð< òó ðó-ó=óó'óó
Aó0Jó
Ið DHØ#-ð.
à@ð.
ð !ð.
ð 
ô	.
r!   r   c                óV   — t        d| d   «      }|j                  d«      r|› d�| d<   | S )zƒ
    Work around platform.python_version() returning something that is not PEP 440
    compliant for non-tagged Python builds.
    r6   r+   ú+Úlocal)r
   Úendswith)Úenvr+   s     r"   rÒ   rÒ   â  s=   € ô ˜u cÐ*?Ñ&@ÓAÐØ×#Ñ# CÔ(Ø(;Ð'<¸EÐ%BˆÐ!Ñ"Ø€Jr!   )rÖ   z	list[str])rD   úMarkerList | MarkerAtom | strrÖ   râ   )rK   r   rÖ   r   )T)r\   zlist[str] | MarkerAtom | strrP   zbool | NonerÖ   r6   )
rE   r6   rF   r   rG   ústr | AbstractSet[str]rs   r6   rÖ   rÚ   )rE   r6   rG   rã   rs   r6   rÖ   z"tuple[str, str | AbstractSet[str]])r‡   r   rˆ   rÎ   rÖ   rÚ   )r”   zsys._version_inforÖ   r6   )rÖ   r   )rá   rÎ   rÖ   rÎ   )8Ú
__future__r   Úoperatorr�   rž   rš   Útypingr   r   r   r   r   r	   r
   Ú_parserr   r   r   r   r   r   r¨   Ú
_tokenizerr   Ú
specifiersr   r   Úutilsr   r   r#   r6   rÚ   ÚOperatorr   ry   rp   Ú
ValueErrorr   r   r   r   rI   rM   rQ   ÚeqÚnerl   r>   rw   r{   r„   r—   r   r   rÒ   r    r!   r"   ú<module>rï      s¨  ðö
 #ã Û 	Û Û 
ß R× RÑ Rç @Õ @Ý 2Ý )ß 3Ý $ò€óð �S˜%  [°Ñ%5Ð 5Ñ6Ð7¸Ð=Ñ>€ØÐ@ÑA€ðð !Ð"5Ð6Ð òÐ ô�Jô ô˜*ô ôU˜zô UôJ�)ô JðZØ)ðà"óó 3ð @DðØ(ðØ1<ðàóñ: &Ù-Ù	!Ø
�+‰+Ø
�+‰+Ø
�+‰+Ø
�+‰+Ù	!ñ	#€
Ðó 	óð"Ø	ðØ)ðØ03ðà'óð*-Øð-Ø&Gð-à	ó-óBó÷,b
ñ b
ðJ
Ø	*ð
à&ô
r!   