U
    ©Ê¹jI  ã                   @   s˜   U d dl Z d dlZd dlZd dlmZmZ d dlmZ d dlm	Z
 g Zee ed< ejdœdd„Zdeeejef d	œd
d„Zeƒ add„ Zdd„ ZdS )é    N)ÚListÚTuple)Ú_log_handlersÚ__all__)Úreturnc                  C   sN   t ƒ \} }t d|› �¡}| tj¡ t d¡}|  |¡ d|_| | ¡ |S )Nzc10d-za%(asctime)s %(filename)s:%(lineno)s %(levelname)s p:%(processName)s t:%(threadName)s: %(message)sF)	Ú_get_logging_handlerÚloggingÚ	getLoggerÚsetLevelÚDEBUGÚ	FormatterÚsetFormatterÚ	propagateÚ
addHandler)Zlogging_handlerÚlog_handler_nameÚloggerÚ	formatter© r   ú\/var/www/html/bwave/python/venv/lib/python3.8/site-packages/torch/distributed/c10d_logger.pyÚ_get_or_create_logger   s    
ÿ

r   Údefault)Údestinationr   c                 C   s   t |  }t|ƒj}||fS )N)r   ÚtypeÚ__name__)r   Zlog_handlerr   r   r   r   r   !   s    
r   c                    s   t  ˆ ¡‡ fdd„ƒ}|S )Nc                     sº   zˆ | |ŽW S  t k
r´ } zŠt ¡ r|ˆ j› | › d|› �t | d¡¡› t | d¡¡› t ¡ › t | d¡¡› |› dœ}nˆ j› | › d|› �|› dœ}t 	|¡ ‚ W 5 d }~X Y nX d S )Nú, Úgroup)Ú	func_nameÚargsÚbackendÚ
world_sizeÚglobal_rankÚ
local_rankÚerror)r   r   r"   )
Ú	ExceptionÚdistÚis_initializedr   Úget_backendÚgetÚget_world_sizeÚget_rankÚ_c10d_loggerÚdebug)r   Úkwargsr"   Zerror_msg_dict©Úfuncr   r   Úwrapper,   s$    ùý
z"_exception_logger.<locals>.wrapper©Ú	functoolsÚwraps©r.   r/   r   r-   r   Ú_exception_logger+   s    r4   c                    s   t  ˆ ¡‡ fdd„ƒ}|S )Nc               
      s®   t  ¡ }ˆ | |Ž}t  ¡ }t ¡ r€ˆ j› | › d|› �t | d¡¡› t | d¡¡› t ¡ › t | d¡¡› || › d�dœ}n ˆ j› | › d|› �|| › dœ}t	 
|¡ |S )Nr   r   Úns)r   r   r   r   r    r!   Ú
time_spent)r   r   r6   )ÚtimeÚtime_nsr$   r%   r   r&   r'   r(   r)   r*   r+   )r   r,   Út1Zfunc_returnÚt2Zmsg_dictr-   r   r   r/   G   s$    
ùý
z_time_logger.<locals>.wrapperr0   r3   r   r-   r   Ú_time_loggerF   s    r;   )r   )r1   r   r7   Útypingr   r   Z"torch.distributed.logging_handlersr   Ztorch.distributedÚdistributedr$   r   ÚstrÚ__annotations__ÚLoggerr   ÚHandlerr   r*   r4   r;   r   r   r   r   Ú<module>	   s    