Shortcuts

Source code for openrl.envs.common.build_envs

from typing import Callable, Iterable, List, Optional, Union

from gymnasium import Env


[docs]def build_envs( make, id: str, env_num: int = 1, render_mode: Optional[Union[str, List[str]]] = None, disable_env_checker: Optional[bool] = None, wrappers: Optional[Union[Callable[[Env], Env], List[Callable[[Env], Env]]]] = None, **kwargs, ) -> List[Callable[[], Env]]: def create_env(env_id: int) -> Callable[[], Env]: """Creates an environment that can enable or disable the environment checker.""" # If the env_id > 0 then disable the environment checker otherwise use the parameter _disable_env_checker = True if env_id > 0 else disable_env_checker def _make_env() -> Env: if isinstance(render_mode, list): env_render_mode = render_mode[env_id] else: env_render_mode = render_mode env = make( id, render_mode=env_render_mode, disable_env_checker=_disable_env_checker, **kwargs, ) if wrappers is not None: if callable(wrappers): env = wrappers(env) elif isinstance(wrappers, Iterable) and all( [callable(w) for w in wrappers] ): for wrapper in wrappers: env = wrapper(env) else: raise NotImplementedError return env return _make_env env_fns = [create_env(env_id) for env_id in range(env_num)] return env_fns