U
    Vºc\  ã                   @   s0   d Z ddlmZ ddlmZ G dd„ deƒZdS )z@Classes and functions for handling the ListMetricEvals API call.é    )Úmetrics)Úscalars_pluginc                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚHandlerz"Handles a ListMetricEvals request.c                 C   s   || _ || _|| _|| _dS )a*  Constructor.

        Args:
            request_context: A tensorboard.context.RequestContext.
            request: A ListSessionGroupsRequest protobuf.
            scalars_plugin_instance: A scalars_plugin.ScalarsPlugin.
            experiment: A experiment ID, as a possibly-empty `str`.
        N)Ú_request_contextÚ_requestÚ_scalars_plugin_instanceÚ_experiment)ÚselfÚrequest_contextÚrequestZscalars_plugin_instanceZ
experiment© r   úQ/tmp/pip-unpacked-wheel-g8kmtpbc/tensorboard/plugins/hparams/list_metric_evals.pyÚ__init__   s    zHandler.__init__c                 C   s<   t  | jj| jj¡\}}| j | j||| jt	j
j¡\}}|S )zÉExecutes the request.

        Returns:
            An array of tuples representing the metric evaluations--each of the
            form (<wall time in secs>, <training step>, <metric value>).
        )r   Zrun_tag_from_session_and_metricr   Zsession_nameZmetric_namer   Zscalars_implr   r   r   ZOutputFormatZJSON)r	   ÚrunÚtagÚbodyÚ_r   r   r   r   )   s     ÿûzHandler.runN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r      s   r   N)r   Ztensorboard.plugins.hparamsr   Ztensorboard.plugins.scalarr   Úobjectr   r   r   r   r   Ú<module>   s   