class_docstr: Internal adapter of VectorEnv to BaseEnv.
  
  We assume the caller will always send the full vector of actions in each
  call to send_actions(), and that they call reset_at() on all completed
  environments before calling send_actions().
class_docstr_tok: ["Internal","adapter","of","VectorEnv","to","BaseEnv",".","We","assume","the","caller","will","always","send","the","full","vector","of","actions","in","each","call","to","send_actions","(",")",",","and","that","they","call","reset_at","(",")","on","all","completed","environments","before","calling","send_actions","(",")","."]
code: def action_space(self) -> gym.Space:
      return self._action_space
  
imports: import logging
  import gymnasium
  import numpy
  from typing import Callable, List, Optional, Tuple, Union, Set
  from ray.rllib.env.base_env import BaseEnv, _DUMMY_AGENT_ID
  from ray.rllib.utils.annotations import Deprecated, override, PublicAPI
  from ray.rllib.utils.typing import EnvActionType, EnvID, EnvInfoDict, EnvObsType, EnvType, MultiEnvDict, AgentID
  from ray.util import log_once
label_desc: Use image node_id 9 for calling the VectorEnvWrapper obj's underlying member method code with example usage: obj.action_space() and returns: self