class_docstr: Common superclass for the structured vectorised env implementations in Maze.
  
  :param n_envs: The number of vectorised environments.
  :param action_spaces_dict: Action spaces dict (not vectorized, as it is the same for all environments)
  :param observation_spaces_dict: Observation spaces dict (not vectorized, as it is the same for all environments)
  :param logging_prefix: If set, will report epoch statistics under this logging prefix.
docstr: Obtain a single value from the epoch statistics dict.
  
  :param event: The event interface method of the value in question.
  :param name: The *output_name* of the statistics in case it has been specified in
               :func:`maze.core.log_stats.event_decorators.define_epoch_stats`
  :param level: Must be set to `LogStatsLevel.EPOCH`, step or episode statistics are not propagated.
docstr_tok: ["Obtain","a","single","value","from","the","epoch","statistics","dict",".",":","param","event",":","The","event","interface","method","of","the","value","in","question",".",":","param","name",":","The","*","output_name","*","of","the","statistics","in","case","it","has","been","specified","in",":","func",":","`","maze.core.log_stats.event_decorators.define_epoch_stats","`",":","param","level",":","Must","be","set","to","`","LogStatsLevel.EPOCH","`",",","step","or","episode","statistics","are","not","propagated","."]
code: def get_stats_value(
      self,
      event: Callable,
      level: LogStatsLevel,
      name: Optional[str] = None,
  ) -> LogStatsValue:
      """Obtain a single value from the epoch statistics dict.
  
      :param event: The event interface method of the value in question.
      :param name: The *output_name* of the statistics in case it has been specified in
                   :func:`maze.core.log_stats.event_decorators.define_epoch_stats`
      :param level: Must be set to `LogStatsLevel.EPOCH`, step or episode statistics are not propagated.
      """
      assert level == LogStatsLevel.EPOCH
      return self.epoch_stats.last_stats[(event, name, None)]
  
imports: from abc import ABC, abstractmethod
  from typing import Dict, Union, Optional, Callable
  import gym
  import numpy
  from maze.core.annotations import override
  from maze.core.env.structured_env import StructuredEnv, ActorID, StepKeyType
  from maze.core.env.structured_env_spaces_mixin import StructuredEnvSpacesMixin
  from maze.core.env.time_env_mixin import TimeEnvMixin
  from maze.core.log_stats.log_stats import LogStatsAggregator, LogStatsLevel, get_stats_logger, LogStatsValue
  from maze.core.log_stats.log_stats_env import LogStatsEnv
  from maze.train.parallelization.vector_env.vector_env import VectorEnv
label_desc: Use image node_id 14 for calling the StructuredVectorEnv obj's underlying member method code with example usage: obj.get_stats_value(event, level, name) and returns: self