
    &Vf8                         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	 Z G d
 de
j                  Zej        d             Zd Zd ZdS )z,A data provider that talks to a gRPC server.    N)tensor_util)timing)errors)provider)data_provider_pb2)data_provider_pb2_grpcc                 *    t          j        |           S )z)Wraps a gRPC channel with a service stub.)r   TensorBoardDataProviderStub)channels    [/var/www/html/software/conda/lib/python3.11/site-packages/tensorboard/data/grpc_provider.py	make_stubr      s    !=gFFF    c                   \   e Zd ZdZd Zd Zd Zd Zd Ze	j
        ddd	            Ze	j
        ddd
d            Ze	j
        ddd            Ze	j
        ddd            Ze	j
        ddd
d            Ze	j
        	 dd            Ze	j
        	 	 dd            Ze	j
        d             ZdS )GrpcDataProviderz#Data provider that talks over gRPC.c                 "    || _         || _        dS )a$  Initializes a GrpcDataProvider.

        Args:
          addr: String address of the remote peer. Used cosmetically for
            data location.
          stub: `data_provider_pb2_grpc.TensorBoardDataProviderStub`
            value. See `make_stub` to construct one from a channel.
        N)_addr_stub)selfaddrstubs      r   __init__zGrpcDataProvider.__init__&   s     



r   c                     d| j         z  S )NzGrpcDataProvider(addr=%r))r   )r   s    r   __str__zGrpcDataProvider.__str__2   s    *TZ77r   c                ,   t          j                    }||_        t                      5  | j                            |          }d d d            n# 1 swxY w Y   t          j        |j        |j	        |j
        t          |j                            }|S )N)data_locationexperiment_nameexperiment_descriptioncreation_time)r   GetExperimentRequestexperiment_id_translate_grpc_errorr   GetExperimentr   ExperimentMetadatar   namedescription_timestamp_proto_to_floatr   r   ctxr    reqress        r   experiment_metadataz$GrpcDataProvider.experiment_metadata5   s    466)"$$ 	0 	0***3//C	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0)+H#&?3C4EFF	
 
 
 
   AAAc                    t          j                    }||_        t                      5  | j                            |          }d d d            n# 1 swxY w Y   d |j        D             S )Nc                     g | ]	}|j         
S  )r$   ).0ps     r   
<listcomp>z1GrpcDataProvider.list_plugins.<locals>.<listcomp>G   s    ,,,1,,,r   )r   ListPluginsRequestr    r!   r   ListPluginspluginsr'   s        r   list_pluginszGrpcDataProvider.list_pluginsB   s    244)"$$ 	. 	.*((--C	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.,,,,,,r,   c                    t          j                    }||_        t                      5  | j                            |          }d d d            n# 1 swxY w Y   d |j        D             S )Nc                 Z    g | ](}t          j        |j        |j        |j                   )S ))run_idrun_name
start_time)r   Runr$   r;   )r0   runs     r   r2   z.GrpcDataProvider.list_runs.<locals>.<listcomp>N   sJ     
 
 
  Lx>  
 
 
r   )r   ListRunsRequestr    r!   r   ListRunsrunsr'   s        r   	list_runszGrpcDataProvider.list_runsI   s    /11)"$$ 	+ 	+*%%c**C	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+
 
 x
 
 
 	
r,   N)run_tag_filterc          
         t          j        d          5  t          j                    }||_        ||j        _        t          ||j                   d d d            n# 1 swxY w Y   t          j        d          5  t                      5  | j
                            |          }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        d          5  i }|j        D ]m}i }	|	||j        <   |j        D ]W}
|
j        }t!          j        |j        |j        |j        j        j        |j        j        |j        j                  |	|
j        <   Xn|cd d d            S # 1 swxY w Y   d S )Nbuild requestz_stub.ListScalarsbuild resultmax_stepmax_wall_timeplugin_contentr%   display_name)r   log_latencyr   ListScalarsRequestr    plugin_filterplugin_name_populate_rtfrB   r!   r   ListScalarsr@   r:   tagsmetadatar   ScalarTimeSeriesrG   rH   summary_metadataplugin_datacontentsummary_descriptionrJ   tag_namer   r(   r    rN   rB   r)   r*   result	run_entryrQ   	tag_entrytime_seriess               r   list_scalarszGrpcDataProvider.list_scalarsW       00 	> 	>#688C -C,7C).#*<===		> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>
  344 	2 	2&(( 2 2j,,S112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 // 	 	F X  	-1y)*!*  I"+"4K/7/H!,!5&1&?'2'C'O'W$/$@$T%0%A%N0 0 0D+,, 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	Z   <AA!$A!<C	B2&C	2B6	6C	9B6	:C		CC(A9E..E25E2)
downsamplerB   c          	      0   t          j        d          5  t          j                    }||_        ||j        _        t          ||j                   ||j	        _
        d d d            n# 1 swxY w Y   t          j        d          5  t                      5  | j                            |          }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        d          5  i }|j        D ]~}	i }
|
||	j        <   |	j        D ]h}g }||
|j        <   |j        }t'          |j        |j        |j                  D ]2\  }}}t/          j        |||          }|                    |           3i|cd d d            S # 1 swxY w Y   d S )NrD   _stub.ReadScalarsrE   step	wall_timevalue)r   rK   r   ReadScalarsRequestr    rM   rN   rO   rB   ra   
num_pointsr!   r   ReadScalarsr@   r:   rQ   rX   datazipre   rf   rg   r   ScalarDatumappendr   r(   r    rN   ra   rB   r)   r*   rZ   r[   rQ   r\   seriesdre   wtrg   points                     r   read_scalarszGrpcDataProvider.read_scalarss   s    00 	3 	3#688C -C,7C).#*<===(2CN%	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3  344 	2 	2&(( 2 2j,,S112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 // 	 	F X - -	-1y)*!* 
- 
-IF/5D+,!A-0ag-N-N - -)r5 ( 4!%&("'! ! !
 e,,,,-	
- !	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s[   AA))A-0A-CB>2C>C	CC	CCC4B
FFFc          	      .   t          j        d          5  t          j                    }||_        ||j        _        t          ||j                   d|j	        _
        d d d            n# 1 swxY w Y   t          j        d          5  t                      5  | j                            |          }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        d          5  t          j        t                     }|j        D ]f}|j        }	|j        D ]U}
|
j        }t+          |j        |j        |j                  D ]+\  }}}t3          j        |||          ||	         |
j        <   ,Vg|cd d d            S # 1 swxY w Y   d S )NrD      rc   rE   rd   )r   rK   r   rh   r    rM   rN   rO   rB   ra   ri   r!   r   rj   collectionsdefaultdictdictr@   r:   rQ   rk   rl   re   rf   rg   r   rm   rX   )r   r(   r    rN   rB   r)   r*   rZ   r[   r:   r\   rq   re   rr   rg   s                  r   read_last_scalarsz"GrpcDataProvider.read_last_scalars   s    00 	* 	*#688C -C,7C).#*<=== )*CN%	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*  344 	2 	2&(( 2 2j,,S112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 // 	 	 ,T22F X  	$-!*  I!A .1ag-N-N  )r5 %0!%&("'   x(%. 	 !	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s[   AA))A-0A-CB>2C>C	CC	CCC4B	F

FFc          
         t          j        d          5  t          j                    }||_        ||j        _        t          ||j                   d d d            n# 1 swxY w Y   t          j        d          5  t                      5  | j
                            |          }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        d          5  i }|j        D ]m}i }	|	||j        <   |j        D ]W}
|
j        }t!          j        |j        |j        |j        j        j        |j        j        |j        j                  |	|
j        <   Xn|cd d d            S # 1 swxY w Y   d S )NrD   z_stub.ListTensorsrE   rF   )r   rK   r   ListTensorsRequestr    rM   rN   rO   rB   r!   r   ListTensorsr@   r:   rQ   rR   r   TensorTimeSeriesrG   rH   rT   rU   rV   rW   rJ   rX   rY   s               r   list_tensorszGrpcDataProvider.list_tensors   r_   r`   c                T   t          j        d          5  t          j                    }||_        ||j        _        t          ||j                   ||j	        _
        d d d            n# 1 swxY w Y   t          j        d          5  t                      5  | j                            |          }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        d          5  i }|j        D ]}	i }
|
||	j        <   |	j        D ]z}g }||
|j        <   |j        }t'          |j        |j        |j                  D ]D\  }}}t/          j        ||t3          j        |                    }|                    |           E{|cd d d            S # 1 swxY w Y   d S )NrD   z_stub.ReadTensorsrE   )re   rf   numpy)r   rK   r   ReadTensorsRequestr    rM   rN   rO   rB   ra   ri   r!   r   ReadTensorsr@   r:   rQ   rX   rk   rl   re   rf   rg   r   TensorDatumr   make_ndarrayrn   ro   s                     r   read_tensorszGrpcDataProvider.read_tensors   s    00 	3 	3#688C -C,7C).#*<===(2CN%	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3  344 	2 	2&(( 2 2j,,S112 2 2 2 2 2 2 2 2 2 2 2 2 2 2	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 // 	 	F X - -	-1y)*!* 
- 
-IF/5D+,!A-0ag-N-N - -)r5 ( 4!%&("-":5"A"A! ! !
 e,,,,-	
- !	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s[   AA))A-0A-CB>2C>C	CC	CCC4BFF!$F!c                    t          j        d          5  t          j                    }||_        ||j        _        t          ||j                   d d d            n# 1 swxY w Y   t          j        d          5  t                      5  | j
                            |          }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        d          5  i }|j        D ]s}i }	|	||j        <   |j        D ]]}
|
j        }t!          j        |j        |j        |j        |j        j        j        |j        j        |j        j                  |	|
j        <   ^t|cd d d            S # 1 swxY w Y   d S )NrD   z_stub.ListBlobSequencesrE   )rG   rH   
max_lengthrI   r%   rJ   )r   rK   r   ListBlobSequencesRequestr    rM   rN   rO   rB   r!   r   ListBlobSequencesr@   r:   rQ   rR   r   BlobSequenceTimeSeriesrG   rH   r   rT   rU   rV   rW   rJ   rX   rY   s               r   list_blob_sequencesz$GrpcDataProvider.list_blob_sequences   s    00 	> 	>#<>>C -C,7C).#*<===		> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>
  9:: 	8 	8&(( 8 8j223778 8 8 8 8 8 8 8 8 8 8 8 8 8 8	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 // 	 	F X  	-1y)*!* 	 	I"+"4K/7/N!,!5&1&?#.#9'2'C'O'W$/$@$T%0%A%N0 0 0D+,,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sZ   <AA!$A!<C	B2&C	2B6	6C	9B6	:C		CC(A?E44E8;E8c                    t          j        d          5  t          j                    }||_        ||j        _        t          ||j                   ||j	        _
        d d d            n# 1 swxY w Y   t          j        d          5  t                      5  | j                            |          }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        d          5  i }|j        D ]}	i }
|
||	j        <   |	j        D ]}g }||
|j        <   |j        }t'          |j        |j        |j                  D ]\  }}}g }|j        D ]7}|                    t3          j        |j        |j        pd                      8t3          j        ||t=          |                    }|                    |           |cd d d            S # 1 swxY w Y   d S )NrD   z_stub.ReadBlobSequencesrE   )blob_keyurl)re   rf   values)r   rK   r   ReadBlobSequencesRequestr    rM   rN   rO   rB   ra   ri   r!   r   ReadBlobSequencesr@   r:   rQ   rX   rk   rl   re   rf   r   	blob_refsrn   r   BlobReferencer   r   BlobSequenceDatumtuple)r   r(   r    rN   ra   rB   r)   r*   rZ   r[   rQ   r\   rp   rq   re   rr   blob_sequencer   refrs   s                       r   read_blob_sequencesz$GrpcDataProvider.read_blob_sequences  s    00 	3 	3#<>>C -C,7C).#*<===(2CN%	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3  9:: 	8 	8&(( 8 8j223778 8 8 8 8 8 8 8 8 8 8 8 8 8 8	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 // 	 	F X - -	-1y)*!* - -IF/5D+,!A58QX6 6 - -1r= "$#0#:  C"MM ( 6-0\sw$!" !" !"   
 !) :!%E&MM! ! ! e,,,,-	-$ /	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s[   AA))A-0A-CB>2C>C	CC	CCC4CGG Gc                    t          j        d          5  t          j                    }||_        d d d            n# 1 swxY w Y   t          j        d          5  t                      5  t          | j                            |                    }d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        d          5  d	                    d |D                       cd d d            S # 1 swxY w Y   d S )NrD   zlist(_stub.ReadBlob)rE   r   c              3   $   K   | ]}|j         V  d S N)rk   )r0   r*   s     r   	<genexpr>z-GrpcDataProvider.read_blob.<locals>.<genexpr>P  s$      ::CH::::::r   )
r   rK   r   ReadBlobRequestr   r!   listr   ReadBlobjoin)r   r(   r   r)   	responsess        r   	read_blobzGrpcDataProvider.read_blobG  s   00 	$ 	$#355C#CL	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$  677 	; 	;&(( ; ; !4!4S!9!9::	; ; ; ; ; ; ; ; ; ; ; ; ; ; ;	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; // 	; 	;88::	:::::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;sW   <A A B5*(BB5B"	"B5%B"	&B55B9<B9D  DDr   )NN)__name__
__module____qualname____doc__r   r   r+   r6   rA   r   rK   r^   rt   rz   r   r   r   r   r   r/   r   r   r   r   #   s       --
 
 
8 8 8  - - -
 
 
 AE    6  " " " " "H  # # # # #J AE    6  " " " " "H >B   8  ( ( ( (T ; ; ; ; ;r   r   c               #     K   	 d V  d S # t           j        $ r} |                                 t           j        j        k    r&t          j        |                                           |                                 t           j        j        k    r&t          j	        |                                           |                                 t           j        j
        k    r&t          j        |                                            d } ~ ww xY wr   )grpcRpcErrorcode
StatusCodeINVALID_ARGUMENTr   InvalidArgumentErrordetails	NOT_FOUNDNotFoundErrorPERMISSION_DENIEDPermissionDeniedError)es    r   r!   r!   S  s      	=   6688t777-aiikk:::6688t000&qyy{{3336688t888.qyy{{;;;s   
 DC(DDc                     | dS | j         #t          | j                   |j         j        dd<   | j        %t          | j                  |j        j        dd<   dS dS )z)Copies `run_tag_filter` into `rtf_proto`.N)r@   sortednamesrQ   )rB   	rtf_protos     r   rO   rO   a  si    &"()<"="=	QQQ&"()<"="=	QQQ '&r   c                 0    |                                  dz  S )z@Converts `timestamp_pb2.Timestamp` to float seconds since epoch.g    eA)ToNanoseconds)tss    r   r&   r&   k  s    ##r   )r   rw   
contextlibr   tensorboard.utilr   r   tensorboardr   tensorboard.datar   tensorboard.data.protor   r   r   DataProviderr   contextmanagerr!   rO   r&   r/   r   r   <module>r      s)   3 2          ( ( ( ( ( ( # # # # # #       % % % % % % 4 4 4 4 4 4 9 9 9 9 9 9G G G
m; m; m; m; m;x, m; m; m;`	 
 
 
> > >$ $ $ $ $r   