o
    wZh                     @   sJ   d dl mZ d dlT d dlmZmZ erd dlmZ dZG dd dZdS )	    )TYPE_CHECKING)*)_WaitCounter_WaitCounterTracker)SummaryWriterztorch.monitor.Statc                   @   s,   e Zd ZdZdddZdeddfd	d
ZdS )TensorboardEventHandlera]  
    TensorboardEventHandler is an event handler that will write known events to
    the provided SummaryWriter.

    This currently only supports ``torch.monitor.Stat`` events which are logged
    as scalars.

    Example:
        >>> # xdoctest: +REQUIRES(env:TORCH_DOCTEST_MONITOR)
        >>> # xdoctest: +REQUIRES(module:tensorboard)
        >>> from torch.utils.tensorboard import SummaryWriter
        >>> from torch.monitor import TensorboardEventHandler, register_event_handler
        >>> writer = SummaryWriter("log_dir")
        >>> register_event_handler(TensorboardEventHandler(writer))
    writerr   returnNc                 C   s
   || _ dS )z=
        Constructs the ``TensorboardEventHandler``.
        N)_writer)selfr    r   E/var/www/auris/lib/python3.10/site-packages/torch/monitor/__init__.py__init__   s   
z TensorboardEventHandler.__init__eventc                 C   s>   |j tkr|j D ]\}}| jj|||j d q
d S d S )N)Zwalltime)name
STAT_EVENTdataitemsr
   Z
add_scalar	timestamp)r   r   kvr   r   r   __call__$   s
   
z TensorboardEventHandler.__call__)r   r   r	   N)__name__
__module____qualname____doc__r   Eventr   r   r   r   r   r      s    
r   N)	typingr   Ztorch._C._monitorr   r   Ztorch.utils.tensorboardr   r   r   r   r   r   r   <module>   s    