class_docstr: Returns an abstract Garage wrapper class for gym.Env.
  
  In order to provide pickling (serialization) and parameterization
  for :class:`gym.Env` instances, they must be wrapped with :class:`GymEnv`.
  This ensures compatibility with existing samplers and checkpointing when
  the envs are passed internally around garage.
  
  Furthermore, classes inheriting from :class:`GymEnv` should silently
  convert :attribute:`action_space` and :attribute:`observation_space`
  from :class:`gym.Space` to :class:`akro.Space`.
  
  :class:`GymEnv` handles all environments created by :func:`~gym.make`.
  
  It returns a different wrapper class instance if the input environment
  requires special handling.
  Current supported wrapper classes are:
      garage.envs.bullet.BulletEnv for Bullet-based gym environments.
  See __new__() for details.
class_docstr_tok: ["Returns","an","abstract","Garage","wrapper","class","for","gym.Env",".","In","order","to","provide","pickling","(","serialization",")","and","parameterization","for",":","class",":","`","gym.Env","`","instances",",","they","must","be","wrapped","with",":","class",":","`","GymEnv","`",".","This","ensures","compatibility","with","existing","samplers","and","checkpointing","when","the","envs","are","passed","internally","around","garage",".","Furthermore",",","classes","inheriting","from",":","class",":","`","GymEnv","`","should","silently","convert",":","attribute",":","`","action_space","`","and",":","attribute",":","`","observation_space","`","from",":","class",":","`","gym.Space","`","to",":","class",":","`","akro.Space","`",".",":","class",":","`","GymEnv","`","handles","all","environments","created","by",":","func",":","`","~gym.make","`",".","It","returns","a","different","wrapper","class","instance","if","the","input","environment","requires","special","handling",".","Current","supported","wrapper","classes","are",":","garage.envs.bullet.BulletEnv","for","Bullet-based","gym","environments",".","See","__new__","(",")","for","details","."]
docstr: garage.envs.env_spec.EnvSpec: The envionrment specification.
docstr_tok: ["garage.envs.env_spec.EnvSpec",":","The","envionrment","specification","."]
code: def spec(self):
      """garage.envs.env_spec.EnvSpec: The envionrment specification."""
      return self._spec
  
imports: import copy
  import warnings
  import akro
  import gym
  import numpy
  from garage import Environment, EnvSpec, EnvStep, StepType
label_desc: Use image node_id 5 for calling the GymEnv obj's underlying member method code with example usage: obj.spec() and returns: self