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  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)ÚDCP_LOGGER_NAMEÚ__all__Ú_TÚ_PÚreturnc                  O   s`   i }|  dd¡}|  dd¡}|  dd¡}|s"|p| }r"t|ddƒ}|dur*t|ƒn||d< |S )z0
    Extracts log data from dcp method args
    Ústorage_writerNÚstorage_readerÚcheckpoint_id)ÚgetÚgetattrÚstr)ÚargsÚkwargsÚmsg_dictr   r   r   Ú
serializer© r   úa/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/torch/distributed/checkpoint/logger.pyÚ_msg_dict_from_dcp_method_args   s   ÿr   c                 O   s*   t |i |¤Ž}| tj| f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< t |¡ z	ˆ | i |¤Ž}W n# tyM } zˆrHd|d< |› |d< t ¡ |d< t |¡ ‚ d }~ww d|d< t ¡ }t ¡ |d< || |d< t |¡ |S )NÚstartÚeventÚtimeÚ	exceptionÚerrorÚendÚtimes_spent)r   Ú__name__r#   Útime_nsÚ_dcp_loggerÚdebugÚ	Exceptionr%   )r   r   r   Út0Úresultr%   Út1)r    r   r   r   r   Úwrapper4   s8   ÿÿ
ÿ


€ú	
z6_dcp_method_logger.<locals>.decorator.<locals>.wrapper)Ú	functoolsÚwrapsr   r   r   r
   )r    r0   ©r   r   )r    r   Ú	decorator3   s   $z%_dcp_method_logger.<locals>.decorator)r   r   r
   )r   r   r4   r   r3   r   Ú_dcp_method_logger.   s   #r5   )F)r1   r#   Útypingr   r   r   r   r   Útyping_extensionsr   Útorch.distributed.c10d_loggerÚdistributedr   Ú-torch.distributed.checkpoint.logging_handlersr   r	   r   Ú__annotations__Ú_get_or_create_loggerr*   r
   r   r   r   Úboolr5   r   r   r   r   Ú<module>   s(   

ÿÿÿþ