class_docstr: An `EventMultiplexer` manages access to multiple `EventAccumulator`s.
  
  Each `EventAccumulator` is associated with a `run`, which is a self-contained
  TensorFlow execution. The `EventMultiplexer` provides methods for extracting
  information about events from multiple `run`s.
  
  Example usage for loading specific runs from files:
  
  ```python
  x = EventMultiplexer({'run1': 'path/to/run1', 'run2': 'path/to/run2'})
  x.Reload()
  ```
  
  Example usage for loading a directory where each subdirectory is a run
  
  ```python
  (eg:) /parent/directory/path/
        /parent/directory/path/run1/
        /parent/directory/path/run1/events.out.tfevents.1001
        /parent/directory/path/run1/events.out.tfevents.1002
  
        /parent/directory/path/run2/
        /parent/directory/path/run2/events.out.tfevents.9232
  
        /parent/directory/path/run3/
        /parent/directory/path/run3/events.out.tfevents.9232
  x = EventMultiplexer().AddRunsFromDirectory('/parent/directory/path')
  (which is equivalent to:)
  x = EventMultiplexer({'run1': '/parent/directory/path/run1', 'run2':...}
  ```
  
  If you would like to watch `/parent/directory/path`, wait for it to be created
    (if necessary) and then periodically pick up new runs, use
    `AutoloadingMultiplexer`
  @@Tensors
docstr: Get the session.run() metadata associated with a TensorFlow run and
  tag.
  
  Args:
    run: A string name of a TensorFlow run.
    tag: A string name of the tag associated with a particular session.run().
  
  Raises:
    KeyError: If the run is not found, or the tag is not available for the
      given run.
  
  Returns:
    The metadata in the form of `RunMetadata` protobuf data structure.
docstr_tok: ["Get","the","session.run","(",")","metadata","associated","with","a","TensorFlow","run","and","tag",".","Args",":","run",":","A","string","name","of","a","TensorFlow","run",".","tag",":","A","string","name","of","the","tag","associated","with","a","particular","session.run","(",")",".","Raises",":","KeyError",":","If","the","run","is","not","found",",","or","the","tag","is","not","available","for","the","given","run",".","Returns",":","The","metadata","in","the","form","of","`","RunMetadata","`","protobuf","data","structure","."]
code: def RunMetadata(self, run, tag):
      """Get the session.run() metadata associated with a TensorFlow run and
      tag.
  
      Args:
        run: A string name of a TensorFlow run.
        tag: A string name of the tag associated with a particular session.run().
  
      Raises:
        KeyError: If the run is not found, or the tag is not available for the
          given run.
  
      Returns:
        The metadata in the form of `RunMetadata` protobuf data structure.
      """
      accumulator = self.GetAccumulator(run)
      return accumulator.RunMetadata(tag)
  
imports: import os
  import queue
  import threading
  from typing import Optional
  from tensorboard.backend.event_processing import directory_watcher
  from tensorboard.backend.event_processing import plugin_event_accumulator
  from tensorboard.backend.event_processing import io_wrapper
  from tensorboard.util import tb_logging
label_desc: Use image node_id 12 for calling the EventMultiplexer obj's underlying member method code with example usage: obj.RunMetadata(run, tag) and returns: accumulator