class_docstr: Stack previous four frames (must be applied to Gym env, not our envs).
class_docstr_tok: ["Stack","previous","four","frames","(","must","be","applied","to","Gym","env",",","not","our","envs",")","."]
code: def step(self, action: np.ndarray) -> np.ndarray:
      observation, reward, done, info = self._env.step(action)
      self._frames.append(observation)
      return self._generate_observation(), reward, done, info
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import collections
  from typing import Any, Text
  import gym
  import numpy
  from tf_agents.environments import py_environment
  from tf_agents.environments import wrappers
  from tf_agents.trajectories import time_step
label_desc: Use image node_id 5 for calling the FrameStack4 obj's underlying member method code with example usage: obj.step(action) and returns: self,  reward,  done,  info