
    Xi                    Z   S SK Jr  S SKJr  S SKrS SKrS SKJr  S SKJ	r	  S SK
Jr  S SKJr  S SKr\\   " 5       r\\   " 5       rSS jrSS	 jrSS
 jrSS jrSS jrSS jr\R0                  " SSS9SS j5       r\R0                  " SS9SS j5       r\R0                  " SS9SS j5       rg)    )annotations)	GeneratorN)Config)Parser)Item)StashKeyc                R    SnSnU R                  SUSS9  U R                  SUSSS	9  g )
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      G/var/www/html/venv/lib/python3.13/site-packages/_pytest/faulthandler.pypytest_addoptionr      sG    	. 
	1  MM(,MD
MM&(<6SX      c                    SS K n[        5       nUR                  5       (       a  X R                  [        '   [
        R                  " U5      U R                  [        '   UR                  U R                  [           S9  g )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                T   SS K nUR                  5         [        U R                  ;   a8  [        R
                  " U R                  [           5        U R                  [        	 [        U R                  ;   a4  UR                  U R                  [           5        U R                  [        	 g g )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                      [         R                  R                  5       n U S:X  a
  [        5       eU $ ! [        [        4 a4    [         R
                  c   e[         R
                  R                  5       s $ f = f)N)sysstderrfilenoAttributeError
ValueError
__stderr__)r-   s    r   r   r   >   si    '""$ R< ""J' ' ~~)))~~$$&&'s   /2 AA65A6c                H    [        U R                  S5      =(       d    S5      $ )Nr
   r   )floatgetini)r"   s    r   get_timeout_config_valuer4   N   s    56=#>>r   c                V    U R                  S5      n[        U[        5      (       d   eU$ )Nr   )r3   
isinstancer   )r"   exit_on_timeouts     r    get_exit_on_timeout_config_valuer8   R   s*    mm$BCOot,,,,r   T)wrappertrylastc              #  (  #    [        U R                  5      n[        U R                  5      nUS:  aF  SS KnU R                  R                  [
           nUR                  XUS9   S v UR                  5         $ S v $ ! UR                  5         f = f7f)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%A= (B=BB)tryfirstc                 ,    SSK n U R                  5         g)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                 ,    SSK n U R                  5         g)zJCancel 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    " % 	 
 ! ,  "  (0} $&smo H?' ? t, -  $/  / $/  /r   