class_docstr: Environment in which an agent must learn to repeat the seen observations.
  
  Observations are float numbers indicating the to-be-repeated values,
  e.g. -1.0, 5.1, or 3.2.
  
  The action space is always the same as the observation space.
  
  Rewards are r=-abs(observation - action), for all steps.
docstr: Takes a single step in the episode given `action`
  
  Returns: New observation, reward, done-flag, info-dict (empty).
docstr_tok: ["Takes","a","single","step","in","the","episode","given","`","action","`","Returns",":","New","observation",",","reward",",","done-flag",",","info-dict","(","empty",")","."]
code: def step(self, action):
      """Takes a single step in the episode given `action`
  
      Returns: New observation, reward, done-flag, info-dict (empty).
      """
      # Set `done` and `truncated` flags after 10 steps.
      self.episode_len += 1
      done = truncated = self.episode_len >= 10
      # r = -abs(obs - action)
      reward = -sum(abs(self.cur_obs - action))
      # Set a new observation (random sample).
      self.cur_obs = self.observation_space.sample()
      return self.cur_obs, reward, done, truncated, {}
  
imports: import gymnasium
  from ray.rllib.algorithms.ppo import PPOConfig
label_desc: Use image node_id 3 for calling the ParrotEnv obj's underlying member method code with example usage: obj.step(action) and returns: self,  reward,  done,  truncated,  dict