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: Returns a 2-layer dictionary of the form {run: {tag: content}}.
  
  The `content` referred above is the content field of the PluginData proto
  for the specified plugin within a Summary.Value proto.
  
  Args:
    plugin_name: The name of the plugin for which to fetch content.
  
  Returns:
    A dictionary of the form {run: {tag: content}}.
docstr_tok: ["Returns","a","2-layer","dictionary","of","the","form","{","run",":","{","tag",":","content","}","}",".","The","`","content","`","referred","above","is","the","content","field","of","the","PluginData","proto","for","the","specified","plugin","within","a","Summary.Value","proto",".","Args",":","plugin_name",":","The","name","of","the","plugin","for","which","to","fetch","content",".","Returns",":","A","dictionary","of","the","form","{","run",":","{","tag",":","content","}","}","."]
code: def PluginRunToTagToContent(self, plugin_name):
      """Returns a 2-layer dictionary of the form {run: {tag: content}}.
  
      The `content` referred above is the content field of the PluginData proto
      for the specified plugin within a Summary.Value proto.
  
      Args:
        plugin_name: The name of the plugin for which to fetch content.
  
      Returns:
        A dictionary of the form {run: {tag: content}}.
      """
      mapping = {}
      for run in self.Runs():
          try:
              tag_to_content = self.GetAccumulator(
                  run
              ).PluginTagToContent(plugin_name)
          except KeyError:
              # This run lacks content for the plugin. Try the next run.
              continue
          mapping[run] = tag_to_content
      return mapping
  
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 14 for calling the EventMultiplexer obj's underlying member method code with example usage: obj.PluginRunToTagToContent(plugin_name) and returns: mapping