
    &Vf>                        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j                    Z G d dej                  Zd ZdS )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dS )HParamsPluginznHParams Plugin for TensorBoard.

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

        Args:
          context: A base_plugin.TBContext instance.
        N)r   Context_context)selfcontexts     g/var/www/html/software/conda/lib/python3.11/site-packages/tensorboard/plugins/hparams/hparams_plugin.py__init__zHParamsPlugin.__init__7   s     (/88    c                 8    | 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?   s+     #64#=!9	
 
 	
r   c                     dS )NF r    s    r   	is_activezHParamsPlugin.is_activeI   s    ur   c                 ,    t          j        d          S )Nztf-hparams-dashboard)element_name)r   FrontendMetadatar    s    r   frontend_metadatazHParamsPlugin.frontend_metadataL   s    +9OPPPPr   c                 2   t          j        |j                  }t          j        |j                  }	 |j                            d          }t          j        |j                            d                    }t          |t          j
                  }t          j        || j        ||                                          }t          j        || j        ||                                          }t!          j        | j        ||||                                          \  }	}
t#          j        ||	|
          S # t&          j        $ rO}t*                              d|z             t,          j                            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_routeP   s   !'/22#1'/BB	E%l..x88O!%  !455" " 49 M 18T]M= cee  (/T]M= cee  ,3"  cee D) $WdI>>>! 	E 	E 	ELL,q0111%00SVV0DDD	Es   DD8 8FA
FFc                 
   t          j        |j                  }t          j        |j                  }	 t	          |t
          j                  }t          j        |t          j
        t          j        || j        ||                                          d          d          S # t          j        $ rO}t"                              d|z             t$          j                            t+          |                    d }~ww xY wNT)including_default_value_fieldsapplication/jsonr,   r-   )r   r   r/   r0   r5   r   GetExperimentRequestr   r9   r   MessageToJsonr	   r7   r   r8   r   r:   r;   r<   r=   r>   r?   r   r@   rA   r0   rD   rI   s         r   r   z"HParamsPlugin.get_experiment_routeo   s    !'/22#1'/BB	E35 M $)"*T]M= cee37	   #	 	 	 ! 	E 	E 	ELL,q0111%00SVV0DDD	E   A/B$ $D3A
C==Dc                 
   t          j        |j                  }t          j        |j                  }	 t	          |t
          j                  }t          j        |t          j
        t          j        || j        ||                                          d          d          S # t          j        $ rO}t"                              d|z             t$          j                            t+          |                    d }~ww xY wrK   )r   r   r/   r0   r5   r   r6   r   r9   r   rO   r   r7   r   r8   r   r:   r;   r<   r=   r>   r?   rP   s         r   r   z'HParamsPlugin.list_session_groups_route   s    !'/22#1'/BB	E39 M $)'/T]M= cee37	   #	 	 	 ! 	E 	E 	ELL,q0111%00SVV0DDD	ErQ   c           	      B   t          j        |j                  }t          j        |j                  }	 t	          |t
          j                  }|                                 }|st          j	        
                    d          t          j        |t          j        ||||                                          d          S # t           j        $ rO}t$                              d|z             t          j	                            t)          |                    d }~ww xY w)NzScalars plugin not loadedrM   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2#1'/BB	E37 M "5577N! P)223NOOO$!) #%%"   ! 	E 	E 	ELL,q0111%00SVV0DDD	Es   BC   DA
DDc                 ^    | 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   rU   z!HParamsPlugin._get_scalars_plugin   s*     }'?CC(
 
 	
r   N)__name__
__module____qualname____doc__r   r\   plugin_namer   r!   r$   r(   r   Requestapplicationr   r   r   r   rU   r#   r   r   r   r   /   s
        
 &K9 9 9
 
 
  Q Q Q !E E "!E< !E E "!E, !E E "!E, !E E "!E*
 
 
 
 
r   r   c                 $   | j         dk    r| j        n| j                            d          }	 t	          j        | |                      S # t          t          j        f$ r.}t          j	        d
                    ||                    |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3    MTT\ 
 
 		s   A B!)B

B)r`   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>rv      s            # # # # # # / / / / / / 7 7 7 7 7 7 5 5 5 5 5 5 - - - - - - 6 6 6 6 6 6 9 9 9 9 9 9 ; ; ; ; ; ; 0 0 0 0 0 0 ' ' ' ' ' ' ) ) ) ) ) ) + + + + + + C C C C C C ' ' ' ' ' ' 
		 	 L
 L
 L
 L
 L
K( L
 L
 L
^    r   