a
    f	g*                     @   s  d dl Z d dlZd dl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 ee  Zee  Ze	dddd	Zedd
ddZedd
ddZedddZeed
ddZejdddeed dddZejddddddZejddddddZdS )    N)	Generator)Config)Parser)Item)StashKey)parserreturnc                 C   s   d}| j d|dd d S )NzUDump the traceback of all threads if a test takes more than TIMEOUT seconds to finishfaulthandler_timeout        )default)Zaddini)r   help r   W/var/www/html/llm_bihealth/app/venv/lib/python3.9/site-packages/_pytest/faulthandler.pypytest_addoption   s    r   )configr   c                 C   s>   dd l }tt | jt< | | jt< |j| jt d d S Nr   file)	faulthandlerosdupget_stderr_filenostashfault_handler_stderr_fd_key
is_enabled$fault_handler_originally_enabled_keyenabler   r   r   r   r   pytest_configure   s    r   c                 C   sR   dd l }|  t| jv r2t| jt  | jt= | jtdrN|jt	 d d S )Nr   Fr   )
r   disabler   r   r   closegetr   r   r   r   r   r   r   pytest_unconfigure!   s    
r"   )r   c               	   C   sF   zt j } | dkrt | W S  ttjfy@   t j  Y S 0 d S )N)sysstderrfilenoAttributeErrorioUnsupportedOperation
__stderr__)r&   r   r   r   r   .   s    
r   c                 C   s   t | dpdS )Nr	   r
   )floatZgetini)r   r   r   r   get_timeout_config_value=   s    r,   T)ZhookwrapperZtrylast)NNN)itemr   c                 c   s^   t | j}|dkrTdd l}| jjt }|j||d zd V  W |  qZ|  0 nd V  d S r   )r,   r   r   r   r   Zdump_traceback_latercancel_dump_traceback_later)r-   timeoutr   r%   r   r   r   pytest_runtest_protocolA   s    
r0   )Ztryfirstc                  C   s   ddl } |   dS )z@Cancel any traceback dumping due to timeout before entering pdb.r   Nr   r.   r   r   r   r   pytest_enter_pdbQ   s    r3   c                  C   s   ddl } |   dS )zNCancel any traceback dumping due to an interactive exception being
    raised.r   Nr1   r2   r   r   r   pytest_exception_interactY   s    r4   )r(   r   r$   typingr   ZpytestZ_pytest.configr   Z_pytest.config.argparsingr   Z_pytest.nodesr   Z_pytest.stashr   intr   boolr   r   r   r"   r   r+   r,   Zhookimplr0   r3   r4   r   r   r   r   <module>   s*   



