class_docstr: The main API for garage environments.
  
  The public API methods are:
  
  +-----------------------+
  | Functions             |
  +=======================+
  | reset()               |
  +-----------------------+
  | step()                |
  +-----------------------+
  | render()              |
  +-----------------------+
  | visualize()           |
  +-----------------------+
  | close()               |
  +-----------------------+
  
  Set the following properties:
  
  +-----------------------+-------------------------------------------------+
  | Properties            | Description                                     |
  +=======================+=================================================+
  | action_space          | The action space specification                  |
  +-----------------------+-------------------------------------------------+
  | observation_space     | The observation space specification             |
  +-----------------------+-------------------------------------------------+
  | spec                  | The environment specifications                  |
  +-----------------------+-------------------------------------------------+
  | render_modes          | The list of supported render modes              |
  +-----------------------+-------------------------------------------------+
  
  Example of a simple rollout loop:
  
  .. code-block:: python
  
      env = MyEnv()
      policy = MyPolicy()
      first_observation, episode_info = env.reset()
      env.visualize()  # visualization window opened
  
      episode = []
      # Determine the first action
      first_action = policy.get_action(first_observation, episode_info)
      episode.append(env.step(first_action))
  
      while not episode[-1].last():
         action = policy.get_action(episode[-1].observation)
         episode.append(env.step(action))
  
      env.close()  # visualization window closed
  
  Make sure your environment is pickle-able:
      Garage pickles the environment via the `cloudpickle` module
      to save snapshots of the experiment. However, some environments may
      contain attributes that are not pickle-able (e.g. a client-server
      connection). In such cases, override `__setstate__()` and
      `__getstate__()` to add your custom pickle logic.
  
      You might want to refer to the EzPickle module:
      https://github.com/openai/gym/blob/master/gym/utils/ezpickle.py
      for a lightweight way of pickle and unpickle via constructor
      arguments.
class_docstr_tok: ["The","main","API","for","garage","environments",".","The","public","API","methods","are",":","+","--","--","--","--","--","--","--","--","--","--","--","-+","|","Functions","|","+=======================+","|","reset","(",")","|","+","--","--","--","--","--","--","--","--","--","--","--","-+","|","step","(",")","|","+","--","--","--","--","--","--","--","--","--","--","--","-+","|","render","(",")","|","+","--","--","--","--","--","--","--","--","--","--","--","-+","|","visualize","(",")","|","+","--","--","--","--","--","--","--","--","--","--","--","-+","|","close","(",")","|","+","--","--","--","--","--","--","--","--","--","--","--","-+","Set","the","following","properties",":","+","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","|","Properties","|","Description","|","+=======================+=================================================+","|","action_space","|","The","action","space","specification","|","+","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","|","observation_space","|","The","observation","space","specification","|","+","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","|","spec","|","The","environment","specifications","|","+","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","|","render_modes","|","The","list","of","supported","render","modes","|","+","--","--","--","--","--","--","--","--","--","--","--","-+","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","--","-+","Example","of","a","simple","rollout","loop",":","..","code-block",":",":","python","env","=","MyEnv","(",")","policy","=","MyPolicy","(",")","first_observation",",","episode_info","=","env.reset","(",")","env.visualize","(",")","#","visualization","window","opened","episode","=","[","]","#","Determine","the","first","action","first_action","=","policy.get_action","(","first_observation",",","episode_info",")","episode.append","(","env.step","(","first_action",")",")","while","not","episode","[","-1","]",".last","(",")",":","action","=","policy.get_action","(","episode","[","-1","]",".observation",")","episode.append","(","env.step","(","action",")",")","env.close","(",")","#","visualization","window","closed","Make","sure","your","environment","is","pickle-able",":","Garage","pickles","the","environment","via","the","`","cloudpickle","`","module","to","save","snapshots","of","the","experiment",".","However",",","some","environments","may","contain","attributes","that","are","not","pickle-able","(","e.g",".","a","client-server","connection",")",".","In","such","cases",",","override","`","__setstate__","(",")","`","and","`","__getstate__","(",")","`","to","add","your","custom","pickle","logic",".","You","might","want","to","refer","to","the","EzPickle","module",":","https",":","\/\/github.com\/openai\/gym\/blob\/master\/gym\/utils\/ezpickle.py","for","a","lightweight","way","of","pickle","and","unpickle","via","constructor","arguments","."]
docstr: list: A list of string representing the supported render modes.
  
  See render() for a list of modes.
docstr_tok: ["list",":","A","list","of","string","representing","the","supported","render","modes",".","See","render","(",")","for","a","list","of","modes","."]
code: def render_modes(self):
      """list: A list of string representing the supported render modes.
  
      See render() for a list of modes.
      """
  
imports: import abc
  from dataclasses import dataclass
  from typing import Dict
  import akro
  import numpy
  from garage._dtypes import StepType
label_desc: Use image node_id 4 for calling the Environment obj's underlying member method code with example usage: obj.render_modes() without return types