Ë
    æØjjw  ã                  óþ  — d dl mZ d dlmZ d dlmZ d dlmZ d dlZd dlm	Z	 d dl
Z
d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlZeddœ	 	 	 	 	 	 	 	 	 dd„«       Zdd„Z ej4                  dd¬«      dd„«       Z ej4                  dd¬«      dd„«       Z ej4                  d¬«      	 	 	 	 dd„«       Z ej4                  d¬«      dd„«       Z ej4                  d¬«      	 	 	 	 d d„«       Zd!d„Z y)"é    )Úannotations)Ú	Generator)Úcontextmanager)Ú	ExitStackN)ÚLiteral)Úapply_warning_filters)ÚConfig)Úparse_warning_filter)ÚSession)ÚItem)ÚTerminalReporter)Útracemalloc_messageT©Úrecordc             #  óú  K  — | j                  d«      }| j                  j                  xs g }t        j                  |¬«      5 }t
        j                  s6t        j                  dt        ¬«       t        j                  dt        ¬«       t        ||«       |€dn|j                  }|�E|j                  d¬«      D ]0  }	|	j                  D ]  }
t        j                  t        |
d¬	«      Ž  Œ! Œ2 	 d–— |r5|€J ‚|D ]+  }|j                  j!                  t#        |||d¬
«      ¬«       Œ- 	 ddd«       y# |r5|€J ‚|D ]+  }|j                  j!                  t#        |||d¬
«      ¬«       Œ- w w xY w# 1 sw Y   yxY w­w)zíContext manager that catches warnings generated in the contained execution block.

    ``item`` can be None if we are not in the context of an item execution.

    Each warning captured triggers the ``pytest_warning_recorded`` hook.
    Úfilterwarningsr   Úalways)ÚcategoryNÚ )ÚnameF)Úescape)Úwarning_messageÚnodeidÚwhenÚlocation)Úkwargs)ÚgetiniÚknown_args_namespaceÚpythonwarningsÚwarningsÚcatch_warningsÚsysÚwarnoptionsr   ÚDeprecationWarningÚPendingDeprecationWarningr   r   Úiter_markersÚargsr
   Úpytest_warning_recordedÚcall_historicÚdict)ÚconfigÚihookr   Úitemr   Úconfig_filtersÚcmdline_filtersÚlogr   ÚmarkÚargr   s               úR/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/_pytest/warnings.pyÚcatch_warnings_for_itemr4      s’  è ø€ ð —]‘]Ð#3Ó4€NØ×1Ñ1×@Ñ@ÒFÀB€OÜ	×	 Ñ	 ¨Ô	/ð !°3Ü�Šä×#Ñ# HÔ7IÕJÜ×#Ñ# HÔ7PÕQô
 	˜n¨oÔ>ð �|‘¨¯©ˆØÐØ×)Ñ)Ð/?Ð)Ó@ò V�ØŸ9™9ò V�CÜ×+Ñ+Ô-AÀ#ÈeÔ-TÒUñVðVð	Ûáà�Ð&�à'*ò �OØ×1Ñ1×?Ñ?Ü#Ø,;Ø#)Ø!%Ø%)ô	 ð @õ ñ÷3!ð !øñ* à�Ð&�à'*ò �OØ×1Ñ1×?Ñ?Ü#Ø,;Ø#)Ø!%Ø%)ô	 ð @õ ñð	 ú÷+!ð !üs7   ‚AE;ÁB*E/Ã/D3Ã37E/Ä*	E;Ä39E,Å,E/Å/E8Å4E;c                óÖ   — t        j                  t        | j                  «      | j                  | j
                  | j                  | j                  «      t        | j                  «      z   S )z.Convert a warnings.WarningMessage to a string.)
r    ÚformatwarningÚstrÚmessager   ÚfilenameÚlinenoÚliner   Úsource)r   s    r3   Úwarning_record_to_strr=   J   s\   € ä×!Ñ!ÜˆO×#Ñ#Ó$Ø× Ñ Ø× Ñ Ø×ÑØ×Ñóô 	˜O×2Ñ2Ó3ñ4ð 4ó    )ÚwrapperÚtryfirstc              #  ó„   K  — t        | j                  | j                  d| ¬«      5  d –—cd d d «       S # 1 sw Y   y xY w­w)NÚruntest©r+   r,   r   r-   )r4   r+   r,   )r-   s    r3   Úpytest_runtest_protocolrD   U   s8   è ø€ ä	 Ø�{‰{ $§*¡*°9À4ô
ñ ò ÷÷ ò üs   ‚$A ¦4ª
A ´=¹A c              #  óˆ   K  — | j                   }t        ||j                  dd ¬«      5  d –—cd d d «       S # 1 sw Y   y xY w­w)NÚcollectrC   ©r+   r4   Úhook©Úsessionr+   s     r3   Úpytest_collectionrK   ]   s=   è ø€ à�^‰^€FÜ	 Ø˜VŸ[™[¨y¸tô
ñ ò ÷÷ ò üó   ‚&A¨6¬
A¶?»A)r?   c              #  óˆ   K  — | j                   }t        ||j                  dd ¬«      5  d –—cd d d «       S # 1 sw Y   y xY w­w©Nr+   rC   rG   )Úterminalreporterr+   s     r3   Úpytest_terminal_summaryrP   f   sA   è ø€ ð ×$Ñ$€FÜ	 Ø˜VŸ[™[¨x¸dô
ñ ò ÷÷ ò ürL   c              #  óˆ   K  — | j                   }t        ||j                  dd ¬«      5  d –—cd d d «       S # 1 sw Y   y xY w­wrN   rG   rI   s     r3   Úpytest_sessionfinishrR   q   s=   è ø€ à�^‰^€FÜ	 Ø˜VŸ[™[¨x¸dô
ñ ò ÷÷ ò ürL   c              #  óp   K  — t        | | j                  dd ¬«      5  d –—cd d d «       S # 1 sw Y   y xY w­wrN   )r4   rH   )Úearly_configs    r3   Úpytest_load_initial_conftestsrU   z   s8   è ø€ ô 
!Ø <×#4Ñ#4¸8È$ô
ñ ò ÷÷ ò üs   ‚6œ* 
6ª3¯6c           
     ó
  — t        «       5 }|j                  t        | | j                  dd d¬«      «       | j	                  dd«       | j                  |j                  «       j                  «       d d d «       y # 1 sw Y   y xY w)Nr+   F)r+   r,   r   r-   r   ÚmarkerszŸfilterwarnings(warning): add a warning filter to the given test. see https://docs.pytest.org/en/stable/how-to/capture-warnings.html#pytest-mark-filterwarnings )r   Úenter_contextr4   rH   Úaddinivalue_lineÚadd_cleanupÚpop_allÚclose)r+   Ústacks     r3   Úpytest_configurer^   „   s~   € Ü	‹ð 2˜Ø×ÑÜ#ØØ—k‘kØØð
 ô
ô	
ð 	×ÑØðmô	
ð
 	×Ñ˜5Ÿ=™=›?×0Ñ0Ô1÷'2÷ 2ñ 2ús   ‹A%A9Á9B)
r+   r	   r   z'Literal['config', 'collect', 'runtest']r-   zItem | Noner   ÚboolÚreturnúGenerator[None])r   zwarnings.WarningMessager`   r7   )r-   r   r`   úGenerator[None, object, object])rJ   r   r`   rb   )rO   r   r`   ra   )rJ   r   r`   ra   )rT   r	   r`   ra   )r+   r	   r`   ÚNone)!Ú
__future__r   Úcollections.abcr   Ú
contextlibr   r   r"   Útypingr   r    Ú_pytest.configr   r	   r
   Ú_pytest.mainr   Ú_pytest.nodesr   Ú_pytest.terminalr   Ú_pytest.tracemallocr   Úpytestr4   r=   ÚhookimplrD   rK   rP   rR   rU   r^   © r>   r3   ú<module>rp      sE  ðå "å %Ý %Ý  Û 
Ý Û å 0Ý !Ý /Ý  Ý Ý -Ý 3Û ð ð ñ1Øð1ð 2ð1ð ð	1ð ð1ð ò1ó ð1óh4ð €‡�˜¨Ô-òó .ðð €‡�˜¨Ô-òó .ðð €‡�˜ÔðØ&ðàòó ðð €‡�˜Ôòó ðð €‡�˜ÔðØðàòó ðô2r>   