o
    v&i                     @  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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 )0    )annotations)	GeneratorN)Config)Parser)Item)StashKeyparserr   returnNonec                 C  s.   d}d}| j d|dd | j d|ddd	 d S )
NzUDump the traceback of all threads if a test takes more than TIMEOUT seconds to finishzVExit the test process if a test takes more than faulthandler_timeout seconds to finishfaulthandler_timeout        )defaultfaulthandler_exit_on_timeoutboolF)typer   )addini)r   help_timeouthelp_exit_on_timeout r   Z/var/www/html/karishye-ai-python/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_unconfigure0   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   >   s   
r   floatc                 C  s   t | dpdS )Nr   r   )r/   getini)r   r   r   r   get_timeout_config_valueN   s   r1   r   c                 C  s   |  d}t|tsJ |S )Nr   )r0   
isinstancer   )r   exit_on_timeoutr   r   r    get_exit_on_timeout_config_valueR   s   
r4   T)wrappertrylastitemr   Generator[None, object, object]c                 c  sd    t | j}t| j}|dkr/dd l}| jjt }|j|||d zd V W |  S |  w d V S )Nr   )r   exit)r1   r   r4   r   r   r    dump_traceback_latercancel_dump_traceback_later)r7   timeoutr3   r   r*   r   r   r   pytest_runtest_protocolX   s   

r=   )tryfirstc                  C     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_pdbi   s   rB   c                  C  r?   )zNCancel any traceback dumping due to an interactive exception being
    raised.r   Nr@   rA   r   r   r   pytest_exception_interactq   s   rC   )r   r   r	   r
   )r   r   r	   r
   )r	   r'   )r   r   r	   r/   )r   r   r	   r   )r7   r   r	   r8   )r	   r
   )
__future__r   collections.abcr   r   r)   _pytest.configr   _pytest.config.argparsingr   _pytest.nodesr   _pytest.stashr   pytestr'   r   r    r   r#   r&   r   r1   r4   hookimplr=   rB   rC   r   r   r   r   <module>   s.    









