B
    d                 @   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.   yddl } W n tk
r(   tdY nX | S )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   c/var/www/html/venv/lib/python3.7/site-packages/tensorboard/data/experimental/experiment_from_dev.pyimport_pandas%   s    r   c                   s,   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|   || _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)superr   __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 k	rtd|d k	r&tdt }| j|_t }t|j	| | j
j|t d}g }	g }
g }g }g }xx|D ]p}t|jj}|	|jg|  |
|jg|  |t|jj |dd |jjD  |t|jj qzW |	|
||d}|r
||d< ||}|r$t|}|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   sH    



zExperimentFromDev.get_scalars)N)NNFF)__name__
__module____qualname____doc__r   r1   __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 )N)r   )_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   r7      s
    
r7   c             C   sN   | j }|jtjkr0tjd|j  tj  n|jtj	krJt
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   r8      s    r8   )N)N)r5   r?   r#   r9   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   r7   r8   r   r   r   r   <module>   s$   L

