Ë
    æØjjY  ã                  óÐ  — U d dl mZ d dlZ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
 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Zer	 ej,                  d
k  rd dlmZ  G d„ de
«      Z e«       Zded<   dd„Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Zdd„Z ej@                  d¬«      dd„«       Z! ej@                  d¬«      dd„«       Z" ej@                  d¬«      dd„«       Z#y)é    )ÚannotationsN)ÚCallable)Ú
NamedTuple)ÚTYPE_CHECKING)ÚConfig)ÚItem)ÚStashKey)Útracemalloc_message)é   é   )ÚExceptionGroupc                  ó,   — e Zd ZU ded<   ded<   ded<   y)ÚThreadExceptionMetaÚstrÚmsgÚ	cause_msgzBaseException | NoneÚ	exc_valueN)Ú__name__Ú
__module__Ú__qualname__Ú__annotations__© ó    úY/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/_pytest/threadexception.pyr   r      s   … Ø	ƒHØƒNØ#Ô#r   r   z@StashKey[collections.deque[ThreadExceptionMeta | BaseException]]Úthread_exceptionsc                ój  — | j                   t           j                  }g }d }d }	 	 	  |«       }t	        |t
        «      r$t        d«      }||_        |j                  |«       Œ=|j                  }	 t        j                  t        j                  |«      «       Œr# t        $ r Y ndw xY w# t        j                  $ rJ}|j                  �#|j                  f|_        |j                  |_        |j                  |«       Y d }~Œhd }~ww xY wt#        |«      dk(  r|d   ‚|rt%        d|«      ‚	 ~~~y # ~~~w xY w)Nz"Failed to process thread exceptioné   r   z"multiple thread exception warnings)Ústashr   ÚpopÚ
IndexErrorÚ
isinstanceÚBaseExceptionÚRuntimeErrorÚ	__cause__Úappendr   ÚwarningsÚwarnÚpytestÚ%PytestUnhandledThreadExceptionWarningr   r   ÚargsÚlenr   )ÚconfigÚpop_thread_exceptionÚerrorsÚmetaÚ
hook_errorr   Úes          r   Úcollect_thread_exceptionr2   &   s1  € Ø!Ÿ<™<Ô(9Ñ:×>Ñ>ÐØPR€FØ€DØ€Jð%ØðÙ+Ó-�ô ˜$¤Ô.Ü)Ð*NÓO�
Ø'+�
Ô$Ø—‘˜jÔ)Øà—(‘(ˆCð
!Ü—‘œf×JÑJÈ3ÓOÔPð øô ò Ùðûô ×?Ñ?ò !à—>‘>Ð-ð #Ÿn™nÐ.�A”FØ"&§.¡.�A”KØ—‘˜a× Ñ ûð!úô ˆv‹;˜!ÒØ˜‘)ˆOÙÜ Ð!EÀvÓNÐNð ð �D™*øˆF�D™*úsY   ¥D- §B ®A D- Á/(B' ÂD- Â	B$Â!D- Â#B$Â$D- Â'DÂ:A C?Ã:D- Ã?DÄ$D- Ä-D2c                ó¤   — 	 	 t        | «       |t        _        	 | j                  t        = y # |t        _        w xY w# | j                  t        = w xY w©N)r2   Ú	threadingÚ
excepthookr   r   ©r,   Ú	prev_hooks     r   Úcleanupr9   M   sE   € ð	,ð	-ô % VÔ,à#,ŒIÕ à�L‰LÔ*Ñ+øð $-ŒIÕ ûà�L‰LÔ*Ñ+ús   ƒ, Ž< ¬9¹< ¼Ac              ó   — 	 | j                   €dn| j                   j                  }d|› �}ddj                  t        j                  | j
                  | j                  | j                  «      «      z   }dt        | j                   «      z   }||z   |z   }||z   } |t        ||| j                  ¬«      «       y # t        $ r} ||«       ‚ d }~ww xY w)Nz	<unknown>zException in thread z

Ú ú
)r   r   r   )ÚthreadÚnameÚjoinÚ	tracebackÚformat_exceptionÚexc_typer   Úexc_tracebackr
   r   r"   )	r*   r%   Úthread_nameÚsummaryÚtraceback_messageÚtracemalloc_tbr   r   r1   s	            r   Úthread_exception_hookrH   \   sÕ   € ðð &*§[¡[Ð%8‘k¸d¿k¹k×>NÑ>NˆØ(¨¨Ð6ˆØ" R§W¡WÜ×&Ñ&Ø—‘Ø—‘Ø×"Ñ"óó&
ñ 
Ðð Ô 3°D·K±KÓ @Ñ@ˆØÐ)Ñ)¨NÑ:ˆØ˜nÑ,ˆ	áÜàØ#ØŸ.™.ô	õ	
øô ò ÙˆqŒ	ð
 	ûðús   ‚B3B6 Â6	CÂ?	CÃCc                ó$  — t         j                  }t        j                  «       }|| j                  t
        <   | j                  t        j                  t        | |¬«      «       t        j                  t        |j                  ¬«      t         _        y )Nr7   )r%   )r5   r6   ÚcollectionsÚdequer   r   Úadd_cleanupÚ	functoolsÚpartialr9   rH   r%   )r,   r8   rK   s      r   Úpytest_configurerO   „   sa   € Ü×$Ñ$€IÜDO×DUÑDUÓDW€EØ&+€F‡L�LÔ"Ñ#Ø
×Ñ”y×(Ñ(¬¸È9ÔUÔVÜ$×,Ñ,Ô-BÈ5Ï<É<ÔX„IÕr   T)Útrylastc                ó.   — t        | j                  «       y r4   ©r2   r,   ©Úitems    r   Úpytest_runtest_setuprU   Œ   ó   € ä˜TŸ[™[Õ)r   c                ó.   — t        | j                  «       y r4   rR   rS   s    r   Úpytest_runtest_callrX   ‘   rV   r   c                ó.   — t        | j                  «       y r4   rR   rS   s    r   Úpytest_runtest_teardownrZ   –   rV   r   )r,   r   ÚreturnÚNone)r,   r   r8   z,Callable[[threading.ExceptHookArgs], object]r[   r\   )r*   zthreading.ExceptHookArgsr%   z7Callable[[ThreadExceptionMeta | BaseException], object]r[   r\   )rT   r   r[   r\   )$Ú
__future__r   rJ   Úcollections.abcr   rM   Úsysr5   r@   Útypingr   r   r&   Ú_pytest.configr   Ú_pytest.nodesr   Ú_pytest.stashr	   Ú_pytest.tracemallocr
   r(   Úversion_infoÚexceptiongroupr   r   r   r   r2   r9   rH   rO   ÚhookimplrU   rX   rZ   r   r   r   ú<module>rh      s  ðÞ "ã Ý $Û Û 
Û Û Ý Ý  Û å !Ý Ý "Ý 3Û ñ Øà×Ñ�gÒÝ-ô$˜*ô $ñ ƒJð ÐSó ó
$%ðN,Øð,Ø"Nð,à	ó,ð%Ø
"ð%ð Dð	%ð
 
ó%óPYð €‡�˜Ôò*ó ð*ð €‡�˜Ôò*ó ð*ð €‡�˜Ôò*ó ñ*r   