o
    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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)AnyCallable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   w/var/www/html/construction_image-detection-poc/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    ;   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   wrapperH   s:   



	
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   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>   s0   

"
,