code: def AddRun(self, path, name=None):
      
      name = name or path
      accumulator = None
      with self._accumulators_mutex:
        if name not in self._accumulators or self._paths[name] != path:
          if name in self._paths and self._paths[name] != path:
            # TODO(@dandelionmane) - Make it impossible to overwrite an old path
            # with a new path (just give the new path a distinct name)
            logger.warn('Conflict for name %s: old path %s, new path %s',
                               name, self._paths[name], path)
          logger.info('Constructing EventAccumulator for %s', path)
          accumulator = event_accumulator.EventAccumulator(
              path,
              size_guidance=self._size_guidance,
              tensor_size_guidance=self._tensor_size_guidance,
              purge_orphaned_data=self.purge_orphaned_data)
          self._accumulators[name] = accumulator
          self._paths[name] = path
      if accumulator:
        if self._reload_called:
          accumulator.Reload()
      return self
docs: Add a run to the multiplexer.
  
      If the name is not specified, it is the same as the path.
  
      If a run by that name exists, and we are already watching the right path,
        do nothing. If we are watching a different path, replace the event
        accumulator.
  
      If `Reload` has been called, it will `Reload` the newly created
      accumulators.
  
      Args:
        path: Path to the event files (or event directory) for given run.
        name: Name of the run to add. If not provided, is set to path.
  
      Returns:
        The `EventMultiplexer`.