Skip to content

Commit 780e884

Browse files
authored
ENH: add render warn for None (#3112)
* add render warn for None * restore _render (car racing) * improve warn message * reformat
1 parent 1486d33 commit 780e884

File tree

13 files changed

+112
-7
lines changed

13 files changed

+112
-7
lines changed

gym/envs/box2d/bipedal_walker.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,14 @@ def step(self, action: np.ndarray):
606606
return np.array(state, dtype=np.float32), reward, terminated, False, {}
607607

608608
def render(self):
609+
if self.render_mode is None:
610+
gym.logger.warn(
611+
"You are calling render method without specifying any render mode. "
612+
"You can specify the render_mode at initialization, "
613+
f'e.g. gym("{self.spec.id}", render_mode="rgb_array")'
614+
)
615+
return
616+
609617
try:
610618
import pygame
611619
from pygame import gfxdraw

gym/envs/box2d/car_racing.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -565,7 +565,14 @@ def step(self, action: Union[np.ndarray, int]):
565565
return self.state, step_reward, terminated, truncated, {}
566566

567567
def render(self):
568-
return self._render(self.render_mode)
568+
if self.render_mode is None:
569+
gym.logger.warn(
570+
"You are calling render method without specifying any render mode. "
571+
"You can specify the render_mode at initialization, "
572+
f'e.g. gym("{self.spec.id}", render_mode="rgb_array")'
573+
)
574+
else:
575+
return self._render(self.render_mode)
569576

570577
def _render(self, mode: str):
571578
assert mode in self.metadata["render_modes"]

gym/envs/box2d/lunar_lander.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -600,6 +600,14 @@ def step(self, action):
600600
return np.array(state, dtype=np.float32), reward, terminated, False, {}
601601

602602
def render(self):
603+
if self.render_mode is None:
604+
gym.logger.warn(
605+
"You are calling render method without specifying any render mode. "
606+
"You can specify the render_mode at initialization, "
607+
f'e.g. gym("{self.spec.id}", render_mode="rgb_array")'
608+
)
609+
return
610+
603611
try:
604612
import pygame
605613
from pygame import gfxdraw

gym/envs/classic_control/acrobot.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import numpy as np
55
from numpy import cos, pi, sin
66

7-
from gym import core, spaces
7+
from gym import core, logger, spaces
88
from gym.error import DependencyNotInstalled
99

1010
__copyright__ = "Copyright 2013, RLPy http://acl.mit.edu/RLPy"
@@ -277,6 +277,14 @@ def _dsdt(self, s_augmented):
277277
return dtheta1, dtheta2, ddtheta1, ddtheta2, 0.0
278278

279279
def render(self):
280+
if self.render_mode is None:
281+
logger.warn(
282+
"You are calling render method without specifying any render mode. "
283+
"You can specify the render_mode at initialization, "
284+
f'e.g. gym("{self.spec.id}", render_mode="rgb_array")'
285+
)
286+
return
287+
280288
try:
281289
import pygame
282290
from pygame import gfxdraw

gym/envs/classic_control/cartpole.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,14 @@ def reset(
207207
return np.array(self.state, dtype=np.float32), {}
208208

209209
def render(self):
210+
if self.render_mode is None:
211+
gym.logger.warn(
212+
"You are calling render method without specifying any render mode. "
213+
"You can specify the render_mode at initialization, "
214+
f'e.g. gym("{self.spec.id}", render_mode="rgb_array")'
215+
)
216+
return
217+
210218
try:
211219
import pygame
212220
from pygame import gfxdraw

gym/envs/classic_control/continuous_mountain_car.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,14 @@ def _height(self, xs):
189189
return np.sin(3 * xs) * 0.45 + 0.55
190190

191191
def render(self):
192+
if self.render_mode is None:
193+
gym.logger.warn(
194+
"You are calling render method without specifying any render mode. "
195+
"You can specify the render_mode at initialization, "
196+
f'e.g. gym("{self.spec.id}", render_mode="rgb_array")'
197+
)
198+
return
199+
192200
try:
193201
import pygame
194202
from pygame import gfxdraw

gym/envs/classic_control/mountain_car.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,14 @@ def _height(self, xs):
167167
return np.sin(3 * xs) * 0.45 + 0.55
168168

169169
def render(self):
170+
if self.render_mode is None:
171+
gym.logger.warn(
172+
"You are calling render method without specifying any render mode. "
173+
"You can specify the render_mode at initialization, "
174+
f'e.g. gym("{self.spec.id}", render_mode="rgb_array")'
175+
)
176+
return
177+
170178
try:
171179
import pygame
172180
from pygame import gfxdraw

gym/envs/classic_control/pendulum.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,14 @@ def _get_obs(self):
163163
return np.array([np.cos(theta), np.sin(theta), thetadot], dtype=np.float32)
164164

165165
def render(self):
166+
if self.render_mode is None:
167+
gym.logger.warn(
168+
"You are calling render method without specifying any render mode. "
169+
"You can specify the render_mode at initialization, "
170+
f'e.g. gym("{self.spec.id}", render_mode="rgb_array")'
171+
)
172+
return
173+
166174
try:
167175
import pygame
168176
from pygame import gfxdraw

gym/envs/mujoco/mujoco_env.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,14 @@ def _step_mujoco_simulation(self, ctrl, n_frames):
228228
self.sim.step()
229229

230230
def render(self):
231+
if self.render_mode is None:
232+
gym.logger.warn(
233+
"You are calling render method without specifying any render mode. "
234+
"You can specify the render_mode at initialization, "
235+
f'e.g. gym("{self.spec.id}", render_mode="rgb_array")'
236+
)
237+
return
238+
231239
width, height = self.width, self.height
232240
camera_name, camera_id = self.camera_name, self.camera_id
233241
if self.render_mode in {"rgb_array", "depth_array"}:
@@ -348,6 +356,14 @@ def _step_mujoco_simulation(self, ctrl, n_frames):
348356
mujoco.mj_rnePostConstraint(self.model, self.data)
349357

350358
def render(self):
359+
if self.render_mode is None:
360+
gym.logger.warn(
361+
"You are calling render method without specifying any render mode. "
362+
"You can specify the render_mode at initialization, "
363+
f'e.g. gym("{self.spec.id}", render_mode="rgb_array")'
364+
)
365+
return
366+
351367
if self.render_mode in {
352368
"rgb_array",
353369
"depth_array",

gym/envs/toy_text/blackjack.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,14 @@ def reset(
190190
return self._get_obs(), {}
191191

192192
def render(self):
193+
if self.render_mode is None:
194+
gym.logger.warn(
195+
"You are calling render method without specifying any render mode. "
196+
"You can specify the render_mode at initialization, "
197+
f'e.g. gym("{self.spec.id}", render_mode="rgb_array")'
198+
)
199+
return
200+
193201
try:
194202
import pygame
195203
except ImportError:

0 commit comments

Comments
 (0)