class_docstr: Base class for (gym style) environments wrapping a core environment and defining state and execution interfaces.
  The aim of this class is to provide reusable functionality across different gym environments.
  This functionality comprises for example the reset-function, the step-function or the render-function.
  
  :param core_env: Core environment.
  :param action_conversion_dict: A dictionary with action conversion interface implementation
                                   and policy names as keys.
  :param observation_conversion_dict: A dictionary with observation conversion interface implementation
                                    and policy names as keys.
class_docstr_tok: ["Base","class","for","(","gym","style",")","environments","wrapping","a","core","environment","and","defining","state","and","execution","interfaces",".","The","aim","of","this","class","is","to","provide","reusable","functionality","across","different","gym","environments",".","This","functionality","comprises","for","example","the","reset-function",",","the","step-function","or","the","render-function",".",":","param","core_env",":","Core","environment",".",":","param","action_conversion_dict",":","A","dictionary","with","action","conversion","interface","implementation","and","policy","names","as","keys",".",":","param","observation_conversion_dict",":","A","dictionary","with","observation","conversion","interface","implementation","and","policy","names","as","keys","."]
docstr: Helper method for setting the core env to a new, different core env
  instance while maintaining the same core env context object (to not break
  event reporting, callbacks etc.).
  
  Helpful e.g. during deployment, when simulation in core env is not needed,
  and we are just mirroring the production environment instead.
  
  The old core env instanced is not referenced anymore and should be discarded.
docstr_tok: ["Helper","method","for","setting","the","core","env","to","a","new",",","different","core","env","instance","while","maintaining","the","same","core","env","context","object","(","to","not","break","event","reporting",",","callbacks","etc.",")",".","Helpful","e.g",".","during","deployment",",","when","simulation","in","core","env","is","not","needed",",","and","we","are","just","mirroring","the","production","environment","instead",".","The","old","core","env","instanced","is","not","referenced","anymore","and","should","be","discarded","."]
code: def set_core_env(self, core_env: CoreEnv) -> None:
      """Helper method for setting the core env to a new, different core env
      instance while maintaining the same core env context object (to not break
      event reporting, callbacks etc.).
  
      Helpful e.g. during deployment, when simulation in core env is not needed,
      and we are just mirroring the production environment instead.
  
      The old core env instanced is not referenced anymore and should be discarded.
      """
      core_env.context = self.core_env.context
      self.core_env = core_env
      self.env = self.core_env
  
imports: from copy import deepcopy
  from typing import Any, Tuple, Dict, Iterable, Optional, Union, TypeVar, Generic
  import gym
  import numpy
  from maze.core.annotations import override
  from maze.core.env.action_conversion import ActionConversionInterface, ActionType
  from maze.core.env.base_env import BaseEnv
  from maze.core.env.core_env import CoreEnv
  from maze.core.env.event_env_mixin import EventEnvMixin
  from maze.core.env.maze_action import MazeActionType
  from maze.core.env.maze_state import MazeStateType
  from maze.core.env.observation_conversion import ObservationConversionInterface, ObservationType
  from maze.core.env.recordable_env_mixin import RecordableEnvMixin
  from maze.core.env.simulated_env_mixin import SimulatedEnvMixin
  from maze.core.env.structured_env import StructuredEnv, StepKeyType, ActorID
  from maze.core.env.structured_env_spaces_mixin import StructuredEnvSpacesMixin
  from maze.core.env.time_env_mixin import TimeEnvMixin
  from maze.core.events.event_record import EventRecord
  from maze.core.log_events.kpi_calculator import KpiCalculator
  from maze.core.log_events.monitoring_events import RewardEvents
  from maze.core.rendering.renderer import Renderer
  from maze.core.wrappers.wrapper import Wrapper
label_desc: Use image node_id 28 for calling the MazeEnv obj's underlying member method code with example usage: obj.set_core_env(core_env) without return types