o
    hc                     @  s   d dl mZ 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Zee  Zee  Zd&ddZd'ddZd'ddZd(ddZd)ddZejdddd*dd Zejdd!d+d"d#Zejdd!d+d$d%ZdS ),    )annotations)	GeneratorN)Config)Parser)Item)StashKeyparserr   returnNonec                 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)addini)r   help r   U/var/www/html/openai_agents/venv/lib/python3.10/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   stderr_filenor   r   r   pytest_configure   s   
r    c                 C  s\   dd l }|  t| jv rt| jt  | jt= t| jv r,|| jt  | jt= d S d S )Nr   )r   disabler   r   r   closer   r   )r   r   r   r   r   pytest_unconfigure)   s   

r#   intc               	   C  sN   zt j } | dkrt | W S  ttfy&   t jd usJ t j  Y S w )N)sysstderrfilenoAttributeError
ValueError
__stderr__)r(   r   r   r   r   7   s   
r   floatc                 C  s   t | dpdS )Nr   r   )r,   getini)r   r   r   r   get_timeout_config_valueG   s   r.   T)wrappertrylastitemr   Generator[None, object, object]c                 c  sX    t | j}|dkr)dd l}| jjt }|j||d zd V W |  S |  w d V S r   )r.   r   r   r   r   dump_traceback_latercancel_dump_traceback_later)r1   timeoutr   r'   r   r   r   pytest_runtest_protocolK   s   
r6   )tryfirstc                  C     ddl } |   dS )z@Cancel any traceback dumping due to timeout before entering pdb.r   Nr   r4   r   r   r   r   pytest_enter_pdb[   s   r;   c                  C  r8   )zNCancel any traceback dumping due to an interactive exception being
    raised.r   Nr9   r:   r   r   r   pytest_exception_interactc   s   r<   )r   r   r	   r
   )r   r   r	   r
   )r	   r$   )r   r   r	   r,   )r1   r   r	   r2   )r	   r
   )
__future__r   collections.abcr   r   r&   _pytest.configr   _pytest.config.argparsingr   _pytest.nodesr   _pytest.stashr   pytestr$   r   r   r   r    r#   r   r.   hookimplr6   r;   r<   r   r   r   r   <module>   s,    








