class_docstr: Normalizes step reward by dividing through the standard deviation of the discounted return.
  
  Implementation adopted from: https://github.com/MadryLab/implementation-matters
  
  :param env: The underlying environment.
  :param gamma: The discounting factor (e.g., 0.99).
  :param epsilon: Ensures numerical stability and avoid division by zero (e.g., 1e-8).
class_docstr_tok: ["Normalizes","step","reward","by","dividing","through","the","standard","deviation","of","the","discounted","return",".","Implementation","adopted","from",":","https",":","\/\/github.com\/MadryLab\/implementation-matters",":","param","env",":","The","underlying","environment",".",":","param","gamma",":","The","discounting","factor","(","e.g.",",","0.99",")",".",":","param","epsilon",":","Ensures","numerical","stability","and","avoid","division","by","zero","(","e.g.",",","1e-8",")","."]
docstr: implementation of :class:`~maze.core.env.simulated_env_mixin.SimulatedEnvMixin`.
docstr_tok: ["implementation","of",":","class",":","`","~maze.core.env.simulated_env_mixin.SimulatedEnvMixin","`","."]
code: def clone_from(self, env: "ReturnNormalizationRewardWrapper") -> None:
      """implementation of :class:`~maze.core.env.simulated_env_mixin.SimulatedEnvMixin`."""
      self._return = env._return
      self._return_stats = copy.deepcopy(env._return_stats)
      self.env.clone_from(env)
  
file_path: maze/maze/core/wrappers/return_normalization_reward_wrapper.py
imports: import copy
  import numpy
  from maze.core.annotations import override
  from maze.core.env.maze_env import MazeEnv
  from maze.core.env.simulated_env_mixin import SimulatedEnvMixin
  from maze.core.utils.stats_utils import CumulativeMovingMeanStd
  from maze.core.wrappers.wrapper import RewardWrapper
label_desc: Use image node_id 4 for calling the ReturnNormalizationRewardWrapper obj's underlying member method code with example usage: obj.clone_from(env) without return types