class_docstr: An environment that supports batch evaluation using clones of sub-envs.
class_docstr_tok: ["An","environment","that","supports","batch","evaluation","using","clones","of","sub-envs","."]
docstr: Converts an RLlib MultiAgentEnv into a BaseEnv object.
  
  The resulting BaseEnv is always vectorized (contains n
  sub-environments) to support batched forward passes, where n may
  also be 1. BaseEnv also supports async execution via the `poll` and
  `send_actions` methods and thus supports external simulators.
  
  Args:
      make_env: A callable taking an int as input (which indicates
          the number of individual sub-environments within the final
          vectorized BaseEnv) and returning one individual
          sub-environment.
      num_envs: The number of sub-environments to create in the
          resulting (vectorized) BaseEnv. The already existing `env`
          will be one of the `num_envs`.
      remote_envs: Whether each sub-env should be a @ray.remote
          actor. You can set this behavior in your config via the
          `remote_worker_envs=True` option.
      remote_env_batch_wait_ms: The wait time (in ms) to poll remote
          sub-environments for, if applicable. Only used if
          `remote_envs` is True.
  
  Returns:
      The resulting BaseEnv object.
code: def to_base_env(
      self,
      make_env: Optional[Callable[[int], EnvType]] = None,
      num_envs: int = 1,
      remote_envs: bool = False,
      remote_env_batch_wait_ms: int = 0,
      restart_failed_sub_environments: bool = False,
  ) -> "BaseEnv":
      """Converts an RLlib MultiAgentEnv into a BaseEnv object.
  
      The resulting BaseEnv is always vectorized (contains n
      sub-environments) to support batched forward passes, where n may
      also be 1. BaseEnv also supports async execution via the `poll` and
      `send_actions` methods and thus supports external simulators.
  
      Args:
          make_env: A callable taking an int as input (which indicates
              the number of individual sub-environments within the final
              vectorized BaseEnv) and returning one individual
              sub-environment.
          num_envs: The number of sub-environments to create in the
              resulting (vectorized) BaseEnv. The already existing `env`
              will be one of the `num_envs`.
          remote_envs: Whether each sub-env should be a @ray.remote
              actor. You can set this behavior in your config via the
              `remote_worker_envs=True` option.
          remote_env_batch_wait_ms: The wait time (in ms) to poll remote
              sub-environments for, if applicable. Only used if
              `remote_envs` is True.
  
      Returns:
          The resulting BaseEnv object.
      """
      env = VectorEnvWrapper(self)
      return env
  
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 VectorEnv obj's underlying member method code with example usage: obj.to_base_env(make_env, num_envs, remote_envs, remote_env_batch_wait_ms, restart_failed_sub_environments) and returns: env