class_docstr: Environment wrapper for RL2.
  
  In RL2, observation is concatenated with previous action,
  reward and terminal signal to form new observation.
  
  Args:
      env (Environment): An env that will be wrapped.
class_docstr_tok: ["Environment","wrapper","for","RL2",".","In","RL2",",","observation","is","concatenated","with","previous","action",",","reward","and","terminal","signal","to","form","new","observation",".","Args",":","env","(","Environment",")",":","An","env","that","will","be","wrapped","."]
docstr: Call step on wrapped env.
  
  Args:
      action (np.ndarray): An action provided by the agent.
  
  Returns:
      EnvStep: The environment step resulting from the action.
  
  Raises:
      RuntimeError: if `step()` is called after the environment has been
          constructed and `reset()` has not been called.
docstr_tok: ["Call","step","on","wrapped","env",".","Args",":","action","(","np.ndarray",")",":","An","action","provided","by","the","agent",".","Returns",":","EnvStep",":","The","environment","step","resulting","from","the","action",".","Raises",":","RuntimeError",":","if","`","step","(",")","`","is","called","after","the","environment","has","been","constructed","and","`","reset","(",")","`","has","not","been","called","."]
code: def step(self, action):
      """Call step on wrapped env.
  
      Args:
          action (np.ndarray): An action provided by the agent.
  
      Returns:
          EnvStep: The environment step resulting from the action.
  
      Raises:
          RuntimeError: if `step()` is called after the environment has been
              constructed and `reset()` has not been called.
  
      """
      es = self._env.step(action)
      next_obs = es.observation
      next_obs = np.concatenate(
          [
              next_obs,
              action,
              [es.reward],
              [es.step_type == StepType.TERMINAL],
          ]
      )
  
      return EnvStep(
          env_spec=self.spec,
          action=action,
          reward=es.reward,
          observation=next_obs,
          env_info=es.env_info,
          step_type=es.step_type,
      )
  
imports: import abc
  import collections
  import akro
  from dowel import logger
  import numpy
  from garage import EnvSpec, EnvStep, EpisodeBatch, log_multitask_performance, StepType, Wrapper
  from garage.np.algos import MetaRLAlgorithm
  from garage.sampler import DefaultWorker
  from garage.tf.algos._rl2npo import RL2NPO
label_desc: Use image node_id 5 for calling the RL2Env obj's underlying member method code with example usage: obj.step(action) and returns: EnvStep