U
    yh                     @   sd   d dl Zd dlmZmZ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DictTupleCheckpointException)excreturnc                 C   s   | t | jfS N)tb
extract_tb__traceback__)r    r   R/var/www/html/venv/lib/python3.8/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                       sR   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
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 k	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)   r   intWRAPPED_EXCEPTIONr   propertyr   r+   __classcell__r   r   r   r   r      s
   )	tracebackr	   typingr   r   r   r   r   r1   __all__r   boolr   r   r   r   r   r   <module>   s   