Ë
    æØjjš  ã                  óZ  — d dl mZ d dlmZ d dl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Z ee   «       Z ee   «       Zdd„Zdd	„Zdd
„Zdd„Zdd„Zdd„Z ej0                  dd¬«      dd„«       Z ej0                  d¬«      dd„«       Z ej0                  d¬«      dd„«       Zy)é    )Úannotations)Ú	GeneratorN)ÚConfig)ÚParser)ÚItem)ÚStashKeyc                ó^   — d}d}| j                  d|d¬«       | j                  d|dd¬	«       y )
NzUDump the traceback of all threads if a test takes more than TIMEOUT seconds to finishzVExit the test process if a test takes more than faulthandler_timeout seconds to finishÚfaulthandler_timeoutç        )ÚdefaultÚfaulthandler_exit_on_timeoutÚboolF)Útyper   )Úaddini)ÚparserÚhelp_timeoutÚhelp_exit_on_timeouts      úV/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/_pytest/faulthandler.pyÚpytest_addoptionr      sG   € ð	.ð ð
	1ð ð ‡M�MÐ(¨,À€MÔDØ
‡M�MØ&Ð(<À6ÐSXð õ ó    c                óø   — dd l }t        «       }|j                  «       r|| j                  t        <   t        j                  |«      | j                  t        <   |j                  | j                  t           ¬«       y )Nr   )Úfile)	ÚfaulthandlerÚget_stderr_filenoÚ
is_enabledÚstashÚ$fault_handler_original_stderr_fd_keyÚosÚdupÚfault_handler_stderr_fd_keyÚenable)Úconfigr   Ústderr_filenos      r   Úpytest_configurer$   !   s]   € Ûô &Ó'€MØ×ÑÔ Ø=Jˆ�‰Ô9Ñ:Ü02·±°}Ó0E€F‡L�LÔ,Ñ-Ø×Ñ˜VŸ\™\Ô*EÑFÐÕGr   c                óJ  — dd l }|j                  «        t        | j                  v r7t	        j
                  | j                  t           «       | j                  t        = t        | j                  v r4|j                  | j                  t           «       | j                  t        = y y )Nr   )r   Údisabler    r   r   Úcloser   r!   )r"   r   s     r   Úpytest_unconfigurer(   0   sv   € Ûà×ÑÔä" f§l¡lÑ2Ü
�‰�—‘Ô9Ñ:Ô;Ø�L‰LÔ4Ð5ä+¨v¯|©|Ñ;Ø×Ñ˜FŸL™LÔ)MÑNÔOØ�L‰LÔ=Ñ>ð <r   c                 óì   — 	 t         j                  j                  «       } | dk(  r
t        «       ‚| S # t        t        f$ r3 t         j
                  €J ‚t         j
                  j                  «       cY S w xY w)Néÿÿÿÿ)ÚsysÚstderrÚfilenoÚAttributeErrorÚ
ValueErrorÚ
__stderr__)r-   s    r   r   r   >   si   € ð'Ü—‘×"Ñ"Ó$ˆð �RŠ<Ü Ó"Ð"ØˆøÜœJÐ'ò 'ô �~‰~Ð)Ð)Ð)Ü�~‰~×$Ñ$Ó&Ò&ð'ús   ‚.1 ±?A3Á2A3c                ó>   — t        | j                  d«      xs d«      S )Nr
   r   )ÚfloatÚgetini)r"   s    r   Úget_timeout_config_valuer4   N   s   € Ü�—‘Ð5Ó6Ò=¸#Ó>Ð>r   c                óL   — | j                  d«      }t        |t        «      sJ ‚|S )Nr   )r3   Ú
isinstancer   )r"   Úexit_on_timeouts     r   Ú get_exit_on_timeout_config_valuer8   R   s'   € Ø—m‘mÐ$BÓC€OÜ�o¤tÔ,Ð,Ð,ØÐr   T)ÚwrapperÚtrylastc              #  ó.  K  — t        | j                  «      }t        | j                  «      }|dkD  rJdd l}| j                  j                  t
           }|j                  |||¬«       	 d –—|j                  «        S d –—S # |j                  «        w xY w­w)Nr   )r   Úexit)r4   r"   r8   r   r   r    Údump_traceback_laterÚcancel_dump_traceback_later)ÚitemÚtimeoutr7   r   r,   s        r   Úpytest_runtest_protocolrA   X   s~   è ø€ ä& t§{¡{Ó3€GÜ6°t·{±{ÓC€OØ�‚{Ûà—‘×"Ñ"Ô#>Ñ?ˆØ×)Ñ)¨'¸À_Ð)ÔUð	7Úà×4Ñ4Õ6âˆøð ×4Ñ4Õ6üs   ‚A%BÁ(B  Á+BÂ BÂB)Útryfirstc                 ó,   — ddl } | j                  «        y)z@Cancel any traceback dumping due to timeout before entering pdb.r   N©r   r>   ©r   s    r   Úpytest_enter_pdbrF   i   s   € ó à×,Ñ,Õ.r   c                 ó,   — ddl } | j                  «        y)zNCancel any traceback dumping due to an interactive exception being
    raised.r   NrD   rE   s    r   Úpytest_exception_interactrH   q   s   € ó à×,Ñ,Õ.r   )r   r   ÚreturnÚNone)r"   r   rI   rJ   )rI   Úint)r"   r   rI   r2   )r"   r   rI   r   )r?   r   rI   zGenerator[None, object, object])rI   rJ   )Ú
__future__r   Úcollections.abcr   r   r+   Ú_pytest.configr   Ú_pytest.config.argparsingr   Ú_pytest.nodesr   Ú_pytest.stashr   ÚpytestrK   r   r    r   r$   r(   r   r4   r8   ÚhookimplrA   rF   rH   © r   r   ú<module>rU      s¼   ðÝ "å %Û 	Û 
å !Ý ,Ý Ý "Û ð (5 x°¡}£Ð $Ø+˜h s™m›oÐ óóHó?ó'ó ?óð €‡�˜ tÔ,òó -ðð  €‡�˜$Ôò/ó  ð/ð €‡�˜$Ôò/ó  ñ/r   