
    1Vh!                         d 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 Zd Zd Zd	 Zd
 Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(d Z)y)aH  Utilities to migrate legacy summaries/events to generic data form.

For legacy summaries, this populates the `SummaryMetadata.data_class`
field and makes any necessary transformations to the tensor value. For
`graph_def` events, this creates a new summary event.

This should be effected after the `data_compat` transformation.
    )	event_pb2)summary_pb2)metadata)tensor_utilc                     | j                  d      }|dk(  rt        |       S |dk(  rt        |       S |dk(  rt        | |      S | fS )a  Migrate an event to a sequence of events.

    Args:
      event: An `event_pb2.Event`. The caller transfers ownership of the
        event to this method; the event may be mutated, and may or may
        not appear in the returned sequence.
      initial_metadata: Map from tag name (string) to `SummaryMetadata`
        proto for the initial occurrence of the given tag within the
        enclosing run. While loading a given run, the caller should
        always pass the same dictionary here, initially `{}`; this
        function will mutate it and reuse it for future calls.

    Returns:
      A sequence of `event_pb2.Event`s to use instead of `event`.
    what	graph_deftagged_run_metadatasummary)
WhichOneof_migrate_graph_event"_migrate_tagged_run_metadata_event_migrate_summary_event)eventinitial_metadatar   s      L/home/dcms/DCMS/lib/python3.12/site-packages/tensorboard/dataclass_compat.pymigrate_eventr   *   sX      F#D{#E**$$1%88y%e-=>>8O    c                    t        j                         }| j                  |_        | j                  |_        |j                  j
                  j                  t        j                        }| j                  }|j                  j                  t        j                  |g             t        j                  |j                  j                   _        t$        j&                  |j                  _        | |fS N)tag)r   Event	wall_timestepr   valueaddgraphs_metadataRUN_GRAPH_NAMEr	   tensorCopyFromr   make_tensor_protoPLUGIN_NAMEr   plugin_dataplugin_namer   DATA_CLASS_BLOB_SEQUENCE
data_class)	old_eventresultr   graph_bytess       r   r   r   D   s    __F **F..FKNN  $$)G)G$HE%%K	LL+77FG-<-H-HENN* + D DENN vr   c                    t        j                         }| j                  |_        | j                  |_        | j                  }|j
                  j                  j                  |j                        }|j                  j                  t        j                  |j                  g             t        j                  |j                   j"                  _        t&        j(                  |j                   _        |fS r   )r   r   r   r   r
   r   r   r   r   r   r    r   r!   run_metadatar   PLUGIN_NAME_TAGGED_RUN_METADATAr   r#   r$   r   r%   r&   )r'   r(   trmr   s       r   r   r   S   s    __F **F..FK

'
'CNN  $$$1E	LL+779I9I8JKL77 
NN* !, D DENN9r   c                 l   | j                   j                  }|D cg c]  }t        ||      D ]  }|  }}}t        |      t        |      k(  rt	        d t        ||      D              r| fS | j                   j                  d d = | j                   j                  j                  |       | fS c c}}w )Nc              3   *   K   | ]  \  }}||u   y w)N ).0xys      r   	<genexpr>z)_migrate_summary_event.<locals>.<genexpr>i   s      .AqQ.s   )r   r   _migrate_valuelenallzipextend)r   r   valuesoldnew
new_valuess         r   r   r   b   s    ]]  F=M)N"%J 
 6{c*o%# . 4. + xA	MMz*8Os   B0c                    |j                  | j                        }d}|@d}t        j                         }|j	                  | j
                         ||| j                  <   |j                  t        j                  k7  r| fS |j                  j                  }|t        j                  k(  rt        |       S |t        j                  k(  rt        |       S |t        j                  k(  rt!        |       S |t"        j                  k(  rt%        |       S |t&        j                  k(  rt)        |       S |t*        j                  k(  rt-        |       S |t.        j                  k(  rt1        |       S |t2        j                  k(  rt5        |       S |t6        j                  k(  rt9        |       S |t:        j<                  t:        j>                  t:        j@                  fv rtC        |       S | fS )z;Convert an old value to a stream of new values. May mutate.FT)"getr   r   SummaryMetadatar    r   r&   DATA_CLASS_UNKNOWNr#   r$   histograms_metadatar"   _migrate_histogram_valueimages_metadata_migrate_image_valueaudio_metadata_migrate_audio_valuescalars_metadata_migrate_scalar_valuetext_metadata_migrate_text_valuehparams_metadata_migrate_hparams_valuepr_curves_metadata_migrate_pr_curve_valuemesh_metadata_migrate_mesh_valuecustom_scalars_metadata_migrate_custom_scalars_valuer   PLUGIN_NAME_RUN_METADATA#PLUGIN_NAME_RUN_METADATA_WITH_GRAPHPLUGIN_NAME_KERAS_MODEL_migrate_graph_sub_plugin_value)r   r   r   initialr$   s        r   r5   r5   r   s   ##EII.HG ..0%..)&.#k<<<x&&22K)555'..o111#E**n000#E**&222$U++m///"5))&222%e,,(444&u--m///"5))-999,U3300;;// 
 /u558Or   c                 h    | j                  d      rt        j                  | j                  _        | fS Nr   )HasFieldr   DATA_CLASS_SCALARr   r&   r   s    r   rI   rI      '    ~~j!$/$A$A!8Or   c                 h    | j                  d      rt        j                  | j                  _        | fS rZ   r[   r   DATA_CLASS_TENSORr   r&   r]   s    r   rC   rC      r^   r   c                 h    | j                  d      rt        j                  | j                  _        | fS rZ   )r[   r   r%   r   r&   r]   s    r   rE   rE      s'    ~~j!$/$H$H!8Or   c                 h    | j                  d      rt        j                  | j                  _        | fS rZ   r`   r]   s    r   rK   rK      r^   r   c                    | j                  d      rt        j                  | j                  _        | j
                  }d}t        |j                  j                        dkD  rT||j                  j                  j                         j                  z  }t        |j                  j                        dkD  rT|dk7  r|j                  d d |   |j                  d d  | fS )Nr      )r[   r   r%   r   r&   r   r6   tensor_shapedimpopsize
string_val)r   r   strides      r   rG   rG      s    ~~j!$/$H$H!\\FF
f!!%%
&
*&%%))--/444 f!!%%
&
*{%006:!8Or   c                     | j                  d      rt        j                  | j                  _        | j                  d      s)| j
                  j                  t        j                         | fS )Nr   r   )	r[   r   ra   r   r&   r   r    rL   NULL_TENSORr]   s    r   rM   rM      sL    ~~j!$/$A$A!>>(#.::;8Or   c                 h    | j                  d      rt        j                  | j                  _        | fS rZ   r`   r]   s    r   rO   rO      r^   r   c                 h    | j                  d      rt        j                  | j                  _        | fS rZ   r`   r]   s    r   rQ   rQ      r^   r   c                 h    | j                  d      rt        j                  | j                  _        | fS rZ   r`   r]   s    r   rS   rS      r^   r   c                     | j                  d      rt        j                  | j                  _        | j
                  j                  j                  }|s|j                  d       | fS )Nr   re   )ri   )	r[   r   r%   r   r&   r   rf   rg   r   )r   shapes     r   rW   rW      sM    ~~j!$/$H$H!LL%%))E		q	8Or   N)*__doc__tensorboard.compat.protor   r   tensorboard.plugins.audior   rF   !tensorboard.plugins.custom_scalarrR   tensorboard.plugins.graphr   tensorboard.plugins.histogramrB   tensorboard.plugins.hparamsrL   tensorboard.plugins.imagerD   tensorboard.plugins.meshrP   tensorboard.plugins.pr_curverN   tensorboard.plugins.scalarrH   tensorboard.plugins.textrJ   tensorboard.utilr   r   r   r   r   r5   rI   rC   rE   rK   rG   rM   rO   rQ   rS   rW   r0   r   r   <module>r      s    / 0 @ B I D A > G C > (4 'T
r   