U
    yh                     @   s  U d dl Z d dlZd dlZd dlmZmZmZmZmZm	Z	 d dl
mZ d dlZd dlmZ d dlmZ g Zee ed< dZefeejddd	Zefeeejef dd
dZe aeeef dddZe	dZedZeeef eeef dddZeeef eeef dddZdS )    N)AnyCallableDictListTupleTypeVar)	ParamSpec)_log_handlers__all__default)destinationreturnc                 C   sP   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)r   Zlogging_handlerlog_handler_namelogger	formatter r   O/var/www/html/venv/lib/python3.8/site-packages/torch/distributed/c10d_logger.py_get_or_create_logger   s    

r   c                 C   s   t |  }t|j}||fS N)r	   type__name__)r   Zlog_handlerr   r   r   r   r   '   s    
r   )r   c              
   O   s   t  r|dp|d}|  | d| t |d t | t   t | t   t | d}|d dkrtjj	
 }dd	d
 |D |d< n|  | d| d}|S )NgroupZprocess_groupz, Zpg)	func_nameargsZpg_namebackendZ
world_sizeZ
group_sizeZglobal_rankZ
local_rankr#   nccl.c                 s   s   | ]}t |V  qd S r   )str).0vr   r   r   	<genexpr>@   s     z _get_msg_dict.<locals>.<genexpr>nccl_version)r!   r"   )distZis_initializedgetZ_get_process_group_nameget_backendZget_world_sizeZget_ranktorchcudar$   versionjoin)r!   r"   kwargsr    msg_dictr*   r   r   r   _get_msg_dict1   s$    



r4   _T_P)funcr   c                    s(   t  tjtjtd fdd}|S )Nr"   r2   r   c               
      s\   z | |W S  t k
rV } z,t jf| |}| |d< t|  W 5 d }~X Y nX d S )Nerror)	Exceptionr4   r   _c10d_loggerdebug)r"   r2   r9   r3   r7   r   r   wrapperL   s    

z"_exception_logger.<locals>.wrapper	functoolswrapsr6   r"   r2   r5   r7   r>   r   r=   r   _exception_loggerK   s    	rC   c                    s(   t  tjtjtd fdd}|S )Nr8   c                     sL   t  } | |}t  | }t jf| |}| d|d< t| |S )Nns
time_spent)timetime_nsr4   r   r;   r<   )r"   r2   t1Zfunc_returnrE   r3   r=   r   r   r>   Z   s    

z_time_logger.<locals>.wrapperr?   rB   r   r=   r   _time_loggerY   s    rI   ) r@   r   rF   typingr   r   r   r   r   r   typing_extensionsr   r.   Ztorch.distributeddistributedr+   Z"torch.distributed.logging_handlersr	   r
   r&   __annotations__Z_DEFAULT_DESTINATIONLoggerr   Handlerr   r;   r4   r5   r6   rC   rI   r   r   r   r   <module>
   s$      