o
    ni                     @   sf   d dl Z d dlZd dlmZ d dlmZmZmZ d dlZd dl	m
Z
 er*d dlmZ G dd dZdS )    N)TracebackType)TYPE_CHECKINGOptionalType)Error)NoReturnc                   @   sr   e Zd ZU dZee ed< dddZdddZdd	e	dd
fddZ
defddZdee dededdfddZdS )	ExitHooksN	exceptionreturnc                 C   s   d| _ d | _d S )Nr   )	exit_coder	   self r   V/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/wandb/sdk/lib/exit_hooks.py__init__   s   
zExitHooks.__init__c                 C   s4   t j| _| jt _t jt jkrt jnd | _| jt _d S N)sysexit
_orig_exit
excepthook__excepthook___orig_excepthookexc_handlerr   r   r   r   hook   s   zExitHooks.hookr   coder   c                 C   s:   |}|d ur|nd}t |tr|nd}|| _| | d S )Nr      )
isinstanceintr   r   )r   r   	orig_coder   r   r   r      s
   zExitHooks.exitc                 C   s   t | jtS r   )r   r	   KeyboardInterruptr   r   r   r   
was_ctrl_c&   s   zExitHooks.was_ctrl_cexc_typeexctbc                 C   s`   d| _ || _t|trtjt|dd |  rd| _ t	||| | j
r.| 
||| d S d S )Nr   F)repeat   )r   r	   
issubclassr   wandb	termerrorstrr    	tracebackprint_exceptionr   )r   r!   r"   r#   r   r   r   r   )   s   
zExitHooks.exc_handler)r
   N)r   )__name__
__module____qualname__r	   r   BaseException__annotations__r   r   objectr   boolr    r   r   r   r   r   r   r   r      s   
 

r   )r   r*   typesr   typingr   r   r   r'   wandb.errorsr   r   r   r   r   r   r   <module>   s    