o
    i3                     @   s  U d dl Z d dlZd dlZd dlmZ d dl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 e 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e fddZ!dS )    N)Callable)AnyTypeVar)	ParamSpec)uuid4)DCP_LOGGER_NAME__all___T_Preturnc                  O   s   i }| d}| d}| d}| d}|s$|p| }r$t|dd}|dur,t|n||d< tt j|d< |r@|jj|d< |rH|jj|d< |rP|jj|d< |S )z0
    Extracts log data from dcp method args
    storage_writerstorage_readerplannercheckpoint_idNuuid)getgetattrstrr   int	__class____name__)argskwargsmsg_dictr   r   r   r   
serializer r   e/sda-disk/www/egybert/egybert_env/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    >   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   wrapperK   s:   



	
z6_dcp_method_logger.<locals>.decorator.<locals>.wrapper)	functoolswrapsr
   r   r   r	   )r$   r3   r"   r#   )r$   r   	decoratorJ   s   $ z%_dcp_method_logger.<locals>.decorator)r   r
   r	   )r"   r#   r7   r   r6   r   _dcp_method_loggerE   s   $r8   rankc                 C   sJ   t tj t }|tj td|  d}|| t | d S )N[z6] %(asctime)s - %(name)s - %(levelname)s - %(message)s)loggersetLevelloggingINFOStreamHandler	FormattersetFormatter
addHandler)r9   ch	formatterr   r   r   _init_loggerq   s   

rE   )F)"r4   r=   r'   collections.abcr   typingr   r   typing_extensionsr   r   r   torch.distributed.c10d_loggerdistributedr   -torch.distributed.checkpoint.logging_handlersr   	getLoggerr;   r   listr   __annotations___get_or_create_loggerr-   r	   r
   dictr   r    boolr8   r   rE   r   r   r   r   <module>   s2   

#
,