
    ?gZ                    P   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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\R.                  " SSS9SS j5       r\R.                  " SS9SS j5       r\R.                  " SS9SS j5       rg)    )annotationsN)	Generator)Config)Parser)Item)StashKeyc                *    SnU R                  SUSS9  g )NzUDump the traceback of all threads if a test takes more than TIMEOUT seconds to finishfaulthandler_timeout        )default)addini)parserhelps     6/usr/lib/python3/dist-packages/_pytest/faulthandler.pypytest_addoptionr      s!    	. 	 MM($M<    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%   )   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   7   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_valuer1   G   s    56=#>>r   T)wrappertrylastc              #     #    [        U R                  5      nUS:  aE  SS KnU R                  R                  [           nUR                  XS9   S v UR                  5         $ S v $ ! UR                  5         f = f7fr   )r1   r   r   r   r   dump_traceback_latercancel_dump_traceback_later)itemtimeoutr   r)   s       r   pytest_runtest_protocolr9   K   sk     &t{{3G{""#>?))')?	7446 446s   AA<A' A<'A99A<)tryfirstc                 ,    SSK n U R                  5         g)z@Cancel any traceback dumping due to timeout before entering pdb.r   Nr   r6   r   s    r   pytest_enter_pdbr>   [   s     ,,.r   c                 ,    SSK n U R                  5         g)zJCancel any traceback dumping due to an interactive exception being
raised.r   Nr<   r=   s    r   pytest_exception_interactr@   c   s     ,,.r   )r   r   returnNone)r   r   rA   rB   )rA   int)r   r   rA   r/   )r7   r   rA   zGenerator[None, object, object])rA   rB   )
__future__r   r   r(   typingr   _pytest.configr   _pytest.config.argparsingr   _pytest.nodesr   _pytest.stashr   pytestrC   r   r   r   r!   r%   r   r1   hookimplr9   r>   r@    r   r   <module>rM      s    " 	 
  ! ,  "  (0} $&smo =H?' ? t, - $/  / $/  /r   