class_docstr: Base wrapper implementing PyEnvironmentBaseWrapper interface for Gymnasium envs.
  
  Action and observation specs are automatically generated from the action and
  observation spaces. See base class for py_environment.Base details.
class_docstr_tok: ["Base","wrapper","implementing","PyEnvironmentBaseWrapper","interface","for","Gymnasium","envs",".","Action","and","observation","specs","are","automatically","generated","from","the","action","and","observation","spaces",".","See","base","class","for","py_environment.Base","details","."]
code: def __init__(
      self,
      gym_env: gym.Env,
      discount: types.Float = 1.0,
      auto_reset: bool = True,
      simplify_box_bounds: bool = True,
  ):
      super(GymnasiumWrapper, self).__init__(auto_reset)
  
      self._gym_env = gym_env
      self._discount = discount
      self._action_is_discrete = isinstance(
          self._gym_env.action_space, gym.spaces.Discrete
      )
      self._observation_spec = spec_from_gym_space(
          self._gym_env.observation_space,
          simplify_box_bounds,
          "observation",
      )
      self._action_spec = spec_from_gym_space(
          self._gym_env.action_space,
          simplify_box_bounds,
          "action",
      )
      self._flat_obs_spec = tf.nest.flatten(self._observation_spec)
      self._info = None
      self._truncated = True
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import collections
  from typing import Any, Optional, Text, Union
  import gymnasium
  from gymnasium.utils import seeding
  import numpy
  import tensorflow
  from tf_agents import specs
  from tf_agents.environments import py_environment
  from tf_agents.trajectories import time_step
  from tf_agents.typing import types
label_desc: Use image node_id 1 to create a new GymnasiumWrapper object from inherited base classes: py_environment with example: obj = GymnasiumWrapper(gym_env, discount, auto_reset, simplify_box_bounds)