
    עi                    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      U/sites/domain-asset-master/.venv/lib/python3.12/site-packages/_pytest/faulthandler.pypytest_addoptionr      sG    	. 
	1  MM(,MD
MM&(<6SX      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}0EFLL,-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    "fll2
9:;LL45+v||;FLL)MNOLL=> <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'    mm$BCOot,,,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{{3G6t{{CO{""#>?))'_)U	7446 446s   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    " % 	 
 ! ,  "  (5x} $+hsmo H?' ? t, -  $/  / $/  /r   