o
    ߗi                     @   s   U d dl Z d dlZd dlmZmZmZmZmZ d dlm	Z	 d dl
mZ d dlm  mZ d dlmZ g Zee ed< eeaedZe	dZd	eeef fd
dZd	eeef fddZ	ddeded	eeeef geeef f fddZdS )    N)AnyCallableDictListTypeVar)	ParamSpec)uuid4)DCP_LOGGER_NAME__all___T_Preturnc                  O   s   i }| dd}| dd}| dd}| dd}|s(|p| }r(t|dd}|dur0t|n||d< tt j|d< |rD|jj|d< |rL|jj|d< |rT|jj|d< |S )z0
    Extracts log data from dcp method args
    storage_writerNstorage_readerplannercheckpoint_iduuid)getgetattrstrr   int	__class____name__)argskwargsmsg_dictr   r   r   r   
serializer r   a/home/ubuntu/transcripts/venv/lib/python3.10/site-packages/torch/distributed/checkpoint/logger.py_msg_dict_from_dcp_method_args   s"   r   c                 O   s0   t |i |}|tj| g|R i | |S )N)r   updatec10d_logger_get_msg_dict)	func_namer   r   r   r   r   r   r"   7   s   r"   Flog_exceptionswrapper_kwargsc                    s    dt ttf f fdd}|S )zKThis method decorator logs the start, end, and exception of wrapped events.funcc                    s0   t  dtjdtjdtf fdd}|S )Nr   r   r   c               
      s   t  jg| R i i |}d|d< t }||d< |d< t| z	 | i |}W n# tyQ } zrLd|d< | |d< t |d< t|  d }~ww d|d< t }t |d< || |d< t| |S )	Nstarteventtimer$   	exceptionerrorendtimes_spent)r"   r   r)   time_ns_dcp_loggerdebugBaseExceptionr+   )r   r   r   t0resultr+   t1)r&   r$   r%   r   r   wrapperD   s:   



	
z6_dcp_method_logger.<locals>.decorator.<locals>.wrapper)	functoolswrapsr   r   r   r   )r&   r5   r$   r%   )r&   r   	decoratorC   s   $ z%_dcp_method_logger.<locals>.decorator)r   r   r   )r$   r%   r9   r   r8   r   _dcp_method_logger>   s   $r:   )F)r6   r)   typingr   r   r   r   r   typing_extensionsr   r   r   torch.distributed.c10d_loggerdistributedr!   -torch.distributed.checkpoint.logging_handlersr	   r
   r   __annotations___get_or_create_loggerr/   r   r   r   r"   boolr:   r   r   r   r   <module>   s*   

"