o
    7?e                     @   s   d Z ddl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Zdd ZG dd dejZdddZdddZdd ZdS )z/Experiment Data Access API for tensorboard.dev.    N)base_experiment)utils)auth)util)server_info)export_service_pb2)export_service_pb2_grpc)server_info_pb2)	grpc_utilzhttps://tensorboard.devc                  C   s&   zddl } W | S  ty   tdw )zCImport pandas, guarded by a user-friendly error message on failure.r   NzThe get_scalars() feature requires the pandas package, which does not seem to be available in your Python environment. You can install it with command:

  pip install pandas
)pandasImportError)r    r   r/home/www/facesmatcher.com/pyenv/lib/python3.10/site-packages/tensorboard/data/experimental/experiment_from_dev.pyimport_pandas%   s   
r   c                       s4   e Zd ZdZd fdd	Z				d	ddZ  ZS )
ExperimentFromDevzBImplementation of BaseExperiment, specialized for tensorboard.dev.Nc                    s    t    || _t|d| _dS )a  Constructor of ExperimentFromDev.

        Args:
          experiment_id: String ID of the experiment on tensorboard.dev (e.g.,
            "AdYd1TgeTlaLWXx6I8JUbA").
          api_endpoint: Optional override value for API endpoint. Used for
            development only.
        api_endpointN)super__init___experiment_idget_api_client_api_client)selfexperiment_idr   	__class__r   r   r   6   s   
	zExperimentFromDev.__init__Fc                 C   s   t  }|d urtd|d urtdt }| j|_t }t|j	| | j
j|t d}g }	g }
g }g }g }|D ]8}t|jj}|	|jg|  |
|jg|  |t|jj |dd |jjD  |t|jj q<|	|
||d}|r||d< ||}|rt|}|S )Nz=runs_filter support for get_scalars() is not implemented yet.z=tags_filter support for get_scalars() is not implemented yet.)metadatac                 S   s   g | ]}|  d  qS )g    eA)ZToNanoseconds).0tr   r   r   
<listcomp>m   s    z1ExperimentFromDev.get_scalars.<locals>.<listcomp>)runtagstepvalueZ	wall_time)r   NotImplementedErrorr   ZStreamExperimentDataRequestr   r   timer   Zset_timestampZread_timestampr   ZStreamExperimentDatar
   Zversion_metadatalenZpointsvaluesextendZrun_nameZtag_nameliststeps
wall_timesZ	DataFrameexperimental_utilsZpivot_dataframe)r   Zruns_filterZtags_filterZpivotZinclude_wall_timer   requestZ	read_timestreamrunstagsr*   r+   r'   responseZ
num_valuesdataZ	dataframer   r   r   get_scalarsC   sR   


zExperimentFromDev.get_scalarsN)NNFF)__name__
__module____qualname____doc__r   r3   __classcell__r   r   r   r   r   3   s    r   c                 C   sV   t | d}t| t }t  }|rt|t|}t	|j
j|}t|S )Nr   )_get_server_info_handle_server_infogrpcZssl_channel_credentialsr   ZCredentialsStoreZread_credentialsZcomposite_channel_credentialsZid_token_call_credentialsZsecure_channelZ
api_serverZendpointr   ZTensorBoardExporterServiceStub)r   r   Zchannel_credscredentialsZchannelr   r   r   r      s   


r   c                 C   s$   dg}| rt t| |S t t|S )NZscalars)server_info_libZcreate_server_infoDEFAULT_ORIGINZfetch_server_info)r   pluginsr   r   r   r:      s   r:   c                 C   sP   | j }|jtjkrtjd|j  tj  d S |jtj	kr&t
d|j d S )NzWarning [from server]: %s
zError [from server]: %s)compatibilityZverdictr	   ZVERDICT_WARNsysstderrwritedetailsflushZVERDICT_ERROR
ValueError)infocompatr   r   r   r;      s   r;   r4   )r8   rB   r%   r<   Ztensorboard.data.experimentalr   r   r,   Ztensorboard.uploaderr   r   r   r>   Ztensorboard.uploader.protor   r   r	   Ztensorboard.utilr
   r?   r   ZBaseExperimentr   r   r:   r;   r   r   r   r   <module>   s&   
L
