
    Wh!                         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)dS )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                     |                      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      b/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/tensorboard/dataclass_compat.pymigrate_eventr   *   sm      F##D{#E***$$$1%888y%e-=>>>8O    c                 ~   t          j                    }| j        |_        | j        |_        |j        j                            t          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N $$)G$HHE%K	L+7FFGGG-<-HEN* + DEN vr   c                 |   t          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N $$$11E	L+79I8JKKLLL7 
N* !, DEN9r   c                 .   | j         j        }fd|D             }t          |          t          |          k    r*t          d t	          ||          D                       r| fS | j         j        d d = | j         j                            |           | fS )Nc                 :    g | ]}t          |          D ]}|S  )_migrate_value).0oldnewr   s      r   
<listcomp>z*_migrate_summary_event.<locals>.<listcomp>d   sE       =M)N)N "%   r   c              3   $   K   | ]\  }}||u V  d S )Nr0   )r2   xys      r   	<genexpr>z)_migrate_summary_event.<locals>.<genexpr>i   s;       . .AqQ. . . . . .r   )r   r   lenallzipextend)r   r   values
new_valuess    `  r   r   r   b   s    ] F     J
 6{{c*oo%%# . . 44. . . + +% xAAA	Mz***8Or   c                    |                     | j                  }d}|9d}t          j                    }|                    | j                   ||| j        <   |j        t          j        k    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.FNT)"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   r1   r1   r   s   ##EI..HG .00%.)))&.#k<<<x&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30;/  
 /u5558Or   c                 ^    |                      d          rt          j        | j        _        | fS Nr   )HasFieldr   DATA_CLASS_SCALARr   r&   r   s    r   rK   rK      +    ~~j!! B$/$A!8Or   c                 ^    |                      d          rt          j        | j        _        | fS r\   r]   r   DATA_CLASS_TENSORr   r&   r_   s    r   rE   rE      r`   r   c                 ^    |                      d          rt          j        | j        _        | fS r\   )r]   r   r%   r   r&   r_   s    r   rG   rG      s+    ~~j!! I$/$H!8Or   c                 ^    |                      d          rt          j        | j        _        | fS r\   rb   r_   s    r   rM   rM      r`   r   c                 p   |                      d          rt          j        | j        _        | j        }d}t          |j        j                  dk    rC||j        j        	                                j
        z  }t          |j        j                  dk    C|dk    r|j        d d |         |j        d d <   | fS )Nr      )r]   r   r%   r   r&   r   r:   tensor_shapedimpopsize
string_val)r   r   strides      r   rI   rI      s    ~~j!! I$/$H!\FF
f!%
&
&
*
*&%)--//44 f!%
&
&
*
*{{%06:!!!8Or   c                     |                      d          rt          j        | j        _        |                      d          s$| j                            t          j                   | fS )Nr   r   )	r]   r   rc   r   r&   r   r    rN   NULL_TENSORr_   s    r   rO   rO      sY    ~~j!! B$/$A!>>(## <.:;;;8Or   c                 ^    |                      d          rt          j        | j        _        | fS r\   rb   r_   s    r   rQ   rQ      r`   r   c                 ^    |                      d          rt          j        | j        _        | fS r\   rb   r_   s    r   rS   rS      r`   r   c                 ^    |                      d          rt          j        | j        _        | fS r\   rb   r_   s    r   rU   rU      r`   r   c                     |                      d          rt          j        | j        _        | j        j        j        }|s|                    d           | fS )Nr   rg   )rk   )	r]   r   r%   r   r&   r   rh   ri   r   )r   shapes     r   rY   rY      sT    ~~j!! I$/$H!L%)E 		q	8Or   N)*__doc__tensorboard.compat.protor   r   tensorboard.plugins.audior   rH   !tensorboard.plugins.custom_scalarrT   tensorboard.plugins.graphr   tensorboard.plugins.histogramrD   tensorboard.plugins.hparamsrN   tensorboard.plugins.imagerF   tensorboard.plugins.meshrR   tensorboard.plugins.pr_curverP   tensorboard.plugins.scalarrJ   tensorboard.plugins.textrL   tensorboard.utilr   r   r   r   r   r1   rK   rE   rG   rM   rI   rO   rQ   rS   rU   rY   r0   r   r   <module>r      s    / . . . . . 0 0 0 0 0 0 @ @ @ @ @ @      B A A A A A I I I I I I D D D D D D A A A A A A > > > > > > G G G G G G C C C C C C > > > > > > ( ( ( ( ( (  4       ' ' 'T        
 
 
            r   