a
    !f                     @   s  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   U/var/www/html/python-backend/venv/lib/python3.9/site-packages/_pytest/faulthandler.pypytest_addoption   s    r   )configr   c                 C   sF   dd l }t }| r || jt< t|| jt< |j| jt d d S Nr   )file)	faulthandlerget_stderr_fileno
is_enabledstash$fault_handler_original_stderr_fd_keyosdupfault_handler_stderr_fd_keyenable)r   r   Zstderr_filenor   r   r   pytest_configure   s    
r   c                 C   sX   dd l }|  t| jv r2t| jt  | jt= t| jv rT|| jt  | jt= d S )Nr   )r   disabler   r   r   closer   r   )r   r   r   r   r   pytest_unconfigure'   s    

r   )r   c               	   C   sD   zt j } | dkrt | W S  ttfy>   t j  Y S 0 d S )N)sysstderrfilenoAttributeError
ValueError
__stderr__)r#   r   r   r   r   5   s    
r   c                 C   s   t | dpdS )Nr	   r
   )floatZgetini)r   r   r   r   get_timeout_config_valueD   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_protocolH   s    
r,   )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_pdbX   s    r/   c                  C   s   ddl } |   dS )zNCancel any traceback dumping due to an interactive exception being
    raised.r   Nr-   r.   r   r   r   pytest_exception_interact`   s    r0   )r   r!   typingr   ZpytestZ_pytest.configr   Z_pytest.config.argparsingr   Z_pytest.nodesr   Z_pytest.stashr   intr   r   r   r   r   r   r'   r(   Zhookimplr,   r/   r0   r   r   r   r   <module>   s(   



