gym-compete/gym_compete/new_envs/multi_monitoring.py (12 lines of code) (raw):

from gym.wrappers import Monitor class MultiMonitor(Monitor): def _before_step(self, action): return def _after_step(self, observation, reward, done, info): if not self.enabled: return done if done[0] and self.env_semantics_autoreset: # For envs with BlockingReset wrapping VNCEnv, this observation will be the first one of the new episode self._reset_video_recorder() self.episode_id += 1 self._flush() # Record video self.video_recorder.capture_frame() return done