a
    h                     @   s\   d dl Zd dlmZ eeejf ZdgZeedddZ	ee
ddd	ZG d
d deZdS )    N)AnyCheckpointException)excreturnc                 C   s   | t | jfS N)tb
extract_tb__traceback__)r    r
   N/var/www/auris/lib/python3.9/site-packages/torch/distributed/checkpoint/api.py_wrap_exception
   s    r   )objr   c                 C   s<   t | tsdS t| dkrdS t | d to:t | d tjS )NF   r      )
isinstancetuplelenBaseExceptionr   StackSummary)r   r
   r
   r   _is_wrapped_exception   s
    
r   c                       sX   e Zd ZdZeeeef d fddZe	eeef dddZ
eddd	Z  ZS )
r   zNException raised if failure was detected as part of a checkpoint load or save.)msgfailuresc                    s   t  || || _d S r   )super__init__	_failures)selfr   r   	__class__r
   r   r      s    zCheckpointException.__init__)r   c                 C   s   | j S )zYReturn a dictionary mapping node ranks to their associated exceptions in case of failure.)r   )r   r
   r
   r   r      s    zCheckpointException.failuresc                 C   sz   d| j   d}| j  D ]X\}}|\}}|d| d7 }|d urX|dt|7 }|dtjt||d7 }q|S )NzCheckpointException ranks:
z)Traceback (most recent call last): (RANK z)
 )value)r   keysitemsjoinr   format_listformat_exception_onlytype)r   strZrankZexc_pairr   tracer
   r
   r   __str__"   s    zCheckpointException.__str__)__name__
__module____qualname____doc__r'   dictintWRAPPED_EXCEPTIONr   propertyr   r)   __classcell__r
   r
   r   r   r      s
   )	tracebackr   typingr   r   r   r   r0   __all__r   boolr   r   r
   r
   r
   r   <module>   s   