U
    `»{jZ  ã                   @  s  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mZ d dlZee ƒ Zee ƒ Zdd	d
œdd„Zdd	dœdd„Zdd	dœdd„Zddœdd„Zdddœdd„Zejddd�d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 )&é    )ÚannotationsN)Ú	Generator)ÚConfig)ÚParser)ÚItem)ÚStashKeyr   ÚNone)Ú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   úS/var/www/html/bwave/python/venv/lib/python3.8/site-packages/_pytest/faulthandler.pyÚpytest_addoption   s    ÿr   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kr2t | jt ¡ | jt= t| jkrT| | jt ¡ | jt= d S )Nr   )r   Údisabler   r   r   Úcloser   r   )r   r   r   r   r   Úpytest_unconfigure)   s    

r!   Úint)r
   c               	   C  sT   zt j ¡ } | dkrtƒ ‚| W S  ttfk
rN   t jd k	s@t‚t j ¡  Y S X d S )Néÿÿÿÿ)ÚsysÚstderrÚfilenoÚAttributeErrorÚ
ValueErrorÚ
__stderr__ÚAssertionError)r&   r   r   r   r   7   s    
r   Úfloatc                 C  s   t |  d¡pdƒS )Nr   r   )r+   Zgetini)r   r   r   r   Úget_timeout_config_valueG   s    r,   T)ÚwrapperZtrylastr   zGenerator[None, object, object])Úitemr
   c                 c  sV   t | jƒ}|dkrLdd l}| jjt }|j||d� z
d V W ¢S | ¡  X nd V S d S r   )r,   r   r   r   r   Zdump_traceback_laterÚcancel_dump_traceback_later)r.   Útimeoutr   r%   r   r   r   Úpytest_runtest_protocolK   s    

r1   )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_pdb[   s    r4   c                  C  s   ddl } |  ¡  dS )zNCancel any traceback dumping due to an interactive exception being
    raised.r   Nr2   r3   r   r   r   Úpytest_exception_interactc   s    r5   )Ú
__future__r   r   r$   Útypingr   Z_pytest.configr   Z_pytest.config.argparsingr   Z_pytest.nodesr   Z_pytest.stashr   Zpytestr"   r   r   r   r   r!   r   r,   Zhookimplr1   r4   r5   r   r   r   r   Ú<module>   s*   



