a
    h                     @   s  U d dl Z d dlZd dlZd dl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 e Zg Zee ed< eeaedZedZeeef d	d
dZeeef d	ddZdeeeeeef geeef f dddZedddZ dS )    N)AnyCallableTypeVar)	ParamSpec)uuid4)DCP_LOGGER_NAME__all___T_P)returnc                  O   s   i }| dd}| dd}| dd}| dd}|sP|p>| }rPt|dd}|dur`t|n||d< tt j|d< |r|jj|d< |r|jj|d< |r|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   Q/var/www/auris/lib/python3.9/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_kwargsr   c                    s    t ttf d fdd}|S )zKThis method decorator logs the start, end, and exception of wrapped events.funcc                    s,   t  tjtjtd fdd}|S )N)r   r   r   c               
      s   t  jg| R i i |}d|d< t }||d< |d< t| z | i |}W nR ty } z:rd|d< | |d< t |d< t|  W Y d }~n
d }~0 0 d|d< t }t |d< || |d< t| |S )	Nstarteventtimer"   	exceptionerrorendZtimes_spent)r    r   r(   time_ns_dcp_loggerdebugBaseExceptionr*   )r   r   r   t0resultr*   t1)r%   r"   r#   r   r   wrapperH   s6    




z6_dcp_method_logger.<locals>.decorator.<locals>.wrapper)	functoolswrapsr
   r   r   r	   )r%   r3   r"   r#   r$   r   	decoratorG   s      z%_dcp_method_logger.<locals>.decorator)r   r
   r	   )r"   r#   r7   r   r6   r   _dcp_method_loggerB   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_loggern   s    

rE   )F)!r4   r=   r(   typingr   r   r   Ztyping_extensionsr   r   r   Ztorch.distributed.c10d_loggerZdistributedr   Z-torch.distributed.checkpoint.logging_handlersr   	getLoggerr;   r   listr   __annotations__Z_get_or_create_loggerr-   r	   r
   dictr   r    boolr8   r   rE   r   r   r   r   <module>   s(   

" ,