
    1VhV                        d Z ddlZddlZddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddlm
Z
 dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ  ej2                         Z G d dej6                        Zd Zy)zwThe TensorBoard HParams plugin.

See `http_api.md` in this directory for specifications of the routes for
this plugin.
    N)wrappers)plugin_util)api_pb2)backend_context)download_data)error)get_experiment)list_metric_evals)list_session_groups)metadata)json_format)	http_util)base_plugin)
tb_loggingc                   &   e Zd ZdZej
                  Zd Zd Zd Z	d Z
ej                  j                  d        Zej                  j                  d        Zej                  j                  d        Zej                  j                  d	        Zd
 Zy)HParamsPluginznHParams Plugin for TensorBoard.

    It supports both GETs and POSTs. See 'http_api.md' for more details.
    c                 8    t        j                  |      | _        y)z~Instantiates HParams plugin via TensorBoard core.

        Args:
          context: A base_plugin.TBContext instance.
        N)r   Context_context)selfcontexts     Z/home/dcms/DCMS/lib/python3.12/site-packages/tensorboard/plugins/hparams/hparams_plugin.py__init__zHParamsPlugin.__init__5   s     (//8    c                 `    | j                   | j                  | j                  | j                  dS )zSee base class.)z/download_dataz/experimentz/session_groupsz/metric_evals)download_data_routeget_experiment_routelist_session_groups_routelist_metric_evals_router   s    r   get_plugin_appszHParamsPlugin.get_plugin_apps=   s2     #6644#==!99	
 	
r   c                      y)NF r    s    r   	is_activezHParamsPlugin.is_activeG   s    r   c                 .    t        j                  d      S )Nztf-hparams-dashboard)element_name)r   FrontendMetadatar    s    r   frontend_metadatazHParamsPlugin.frontend_metadataJ   s    ++9OPPr   c                 T   t        j                  |j                        }t        j                  |j                        }	 |j                  j                  d      }t        j                  |j                  j                  d            }t        |t        j                        }t        j                  || j                  ||      j                         }t        j                  || j                  ||      j                         }t!        j                  | j                  ||||      j                         \  }	}
t#        j$                  ||	|
      S # t&        j(                  $ rF}t*        j'                  d|z         t,        j.                  j1                  t3        |            d }~ww xY w)NformatcolumnsVisibilityHParams error: %sdescription)r   r   environexperiment_idargsgetjsonloads_parse_request_argumentr   ListSessionGroupsRequestr   Handlerr   runr	   r   r   Respondr   HParamsErrorloggerwerkzeug
exceptions
BadRequeststr)r   requestctxr0   response_formatcolumns_visibilityrequest_protosession_groups
experimentbody	mime_typees               r   r   z!HParamsPlugin.download_data_routeN   sc   !!'//2#11'//B	E%ll..x8O!%  !45" 499M 188T]]M=ce  (//T]]M=ce  ,33" ce D) $$WdI>>!! 	ELL,q01%%00SV0DD	Es    DE F'!AF""F'c                 $   t        j                  |j                        }t        j                  |j                        }	 t	        |t
        j                        }t        j                  || j                  ||      j                         }t        j                  |      }t        j                  ||d      S # t        j                  $ rF}t         j                  d|z         t"        j$                  j'                  t)        |            d }~ww xY wNapplication/jsonr,   r-   )r   r   r/   r0   r5   r   GetExperimentRequestr	   r7   r   r8   proto_to_jsonr   r9   r   r:   r;   r<   r=   r>   r?   r   r@   rA   r0   rD   response_protoresponserI   s           r   r   z"HParamsPlugin.get_experiment_routem   s    !!'//2#11'//B	E355M ,33	
 ce  #00@H$$" 
 !! 	ELL,q01%%00SV0DD	E    A5B6 6D	AD

Dc                 $   t        j                  |j                        }t        j                  |j                        }	 t	        |t
        j                        }t        j                  || j                  ||      j                         }t        j                  |      }t        j                  ||d      S # t        j                  $ rF}t         j                  d|z         t"        j$                  j'                  t)        |            d }~ww xY wrK   )r   r   r/   r0   r5   r   r6   r   r7   r   r8   rN   r   r9   r   r:   r;   r<   r=   r>   r?   rO   s           r   r   z'HParamsPlugin.list_session_groups_route   s    !!'//2#11'//B	E399M 188	
 ce  #00@H$$" 
 !! 	ELL,q01%%00SV0DD	ErR   c           	      D   t        j                  |j                        }t        j                  |j                        }	 t	        |t
        j                        }| j                         }|st        j                  j                  d      t        j                  |t        j                  ||||      j                         d      S # t         j"                  $ rF}t$        j!                  d|z         t        j                  j'                  t)        |            d }~ww xY w)NzScalars plugin not loadedrL   r,   r-   )r   r   r/   r0   r5   r   ListMetricEvalsRequest_get_scalars_pluginr<   r=   NotFoundr   r9   r
   r7   r8   r   r:   r;   r>   r?   )r   r@   rA   r0   rD   scalars_pluginrI   s          r   r   z%HParamsPlugin.list_metric_evals_route   s    !!'//2#11'//B	E377M "557N!))223NOO$$!))#%"  !! 	ELL,q01%%00SV0DD	Es    BC DADDc                 |    | j                   j                  j                  j                  t        j
                        S )z{Tries to get the scalars plugin.

        Returns:
        The scalars plugin or None if it is not yet registered.
        )r   
tb_contextplugin_name_to_instancer2   scalars_metadataPLUGIN_NAMEr    s    r   rV   z!HParamsPlugin._get_scalars_plugin   s0     }}''??CC((
 	
r   N)__name__
__module____qualname____doc__r   r]   plugin_namer   r!   r$   r(   r   Requestapplicationr   r   r   r   rV   r#   r   r   r   r   -   s    
 &&K9
Q !!E "E< !!E "E0 !!E "E0 !!E "E*
r   r   c                 4   | j                   dk(  r| j                  n| j                  j                  d      }	 t	        j
                  | |             S # t        t        j                  f$ r+}t        j                  dj                  ||            |d }~ww xY w)NPOSTr@   z?Expected a JSON-formatted request data of type: {}, but got {} )methoddatar1   r2   r   ParseAttributeError
ParseErrorr   r:   r*   )r@   proto_classrequest_jsonrI   s       r   r5   r5      s     >>V# 	\\i( 
	  {}== K223   MTT\
 		s   A B,&BB)ra   r3   r<   r   tensorboardr   tensorboard.plugins.hparamsr   r   r   r   r	   r
   r   r   google.protobufr   tensorboard.backendr   tensorboard.pluginsr   tensorboard.plugins.scalarr\   tensorboard.utilr   
get_loggerr;   TBPluginr   r5   r#   r   r   <module>rw      sk       # / 7 5 - 6 9 ; 0 ' ) + C ' 
			 P
K(( P
fr   