mirror of
https://github.com/Farama-Foundation/Gymnasium.git
synced 2025-08-02 06:16:32 +00:00
Revert make
error when render mode is used without metadata render modes (#216)
This commit is contained in:
@@ -624,8 +624,8 @@ def make(
|
||||
_kwargs["render_mode"] = mode[: -len("_list")]
|
||||
apply_render_collection = True
|
||||
else:
|
||||
raise error.UnsupportedMode(
|
||||
f"The environment is being initialised with render_mode={mode} "
|
||||
logger.warn(
|
||||
f"The environment is being initialised with render_mode={mode!r} "
|
||||
f"that is not in the possible render_modes ({render_modes})."
|
||||
)
|
||||
|
||||
|
@@ -54,10 +54,16 @@ def register_make_testing_envs():
|
||||
entry_point="tests.envs.utils_envs:NoHumanNoRGB",
|
||||
)
|
||||
|
||||
gym.register(
|
||||
id="test/NoRenderModesMetadata-v0",
|
||||
entry_point="tests.envs.utils_envs:NoRenderModesMetadata",
|
||||
)
|
||||
|
||||
yield
|
||||
|
||||
del gym.envs.registration.registry["RegisterDuringMakeEnv-v0"]
|
||||
del gym.envs.registration.registry["test.ArgumentEnv-v0"]
|
||||
del gym.envs.registration.registry["test/NoRenderModesMetadata-v0"]
|
||||
del gym.envs.registration.registry["test/NoHuman-v0"]
|
||||
del gym.envs.registration.registry["test/NoHumanOldAPI-v0"]
|
||||
del gym.envs.registration.registry["test/NoHumanNoRGB-v0"]
|
||||
@@ -304,6 +310,15 @@ def test_make_render_mode(register_make_testing_envs):
|
||||
):
|
||||
gym.make("CarRacing-v2", render="human")
|
||||
|
||||
# This test checks that a user can create an environment without the metadata including the render mode
|
||||
with pytest.warns(
|
||||
UserWarning,
|
||||
match=re.escape(
|
||||
"\x1b[33mWARN: The environment is being initialised with render_mode='rgb_array' that is not in the possible render_modes ([]).\x1b[0m"
|
||||
),
|
||||
):
|
||||
gym.make("test/NoRenderModesMetadata-v0", render_mode="rgb_array")
|
||||
|
||||
|
||||
def test_make_kwargs(register_make_testing_envs):
|
||||
env = gym.make(
|
||||
|
@@ -47,3 +47,15 @@ class NoHumanNoRGB(gym.Env):
|
||||
def __init__(self, render_mode=None):
|
||||
assert render_mode in self.metadata["render_modes"]
|
||||
self.render_mode = render_mode
|
||||
|
||||
|
||||
class NoRenderModesMetadata(gym.Env):
|
||||
"""An environment that has rendering but has not updated the metadata."""
|
||||
|
||||
# metadata: dict[str, Any] = {"render_modes": []}
|
||||
|
||||
def __init__(self, render_mode):
|
||||
self.render_mode = render_mode
|
||||
|
||||
self.observation_space = gym.spaces.Box(low=0, high=1)
|
||||
self.action_space = gym.spaces.Box(low=0, high=1)
|
||||
|
Reference in New Issue
Block a user