def test_main(tmp_path): """ tests for the logger module """ info("hi") debug("shouldn't appear") set_level(DEBUG) debug("should appear") configure(folder=str(tmp_path)) record("a", 3) record("b", 2.5) dump() record("b", -2.5) record("a", 5.5) dump() info("^^^ should see a = 5.5") record_mean("b", -22.5) record_mean("b", -44.4) record("a", 5.5) dump() with ScopedConfigure(None, None): info("^^^ should see b = 33.3") with ScopedConfigure(str(tmp_path / "test-logger"), ["json"]): record("b", -2.5) dump() reset() record("a", "longasslongasslongasslongasslongasslongassvalue") dump() warn("hey") error("oh") record_dict({"test": 1})
def reset(self): if self.waiting_step: logger.warn( "Called reset() while waiting for the step to complete") self.step_wait() for pipe in self.parent_pipes: pipe.send(("reset", None)) return self._decode_obses([pipe.recv() for pipe in self.parent_pipes])
def test_main(tmp_path): """ tests for the logger module """ info("hi") debug("shouldn't appear") assert get_level() == INFO set_level(DEBUG) assert get_level() == DEBUG debug("should appear") configure(folder=str(tmp_path)) assert get_dir() == str(tmp_path) record("a", 3) record("b", 2.5) dump() record("b", -2.5) record("a", 5.5) dump() info("^^^ should see a = 5.5") record("f", "this text \n \r should appear in one line") dump() info('^^^ should see f = "this text \n \r should appear in one line"') record_mean("b", -22.5) record_mean("b", -44.4) record("a", 5.5) dump() with ScopedConfigure(None, None): info("^^^ should see b = 33.3") with ScopedConfigure(str(tmp_path / "test-logger"), ["json"]): record("b", -2.5) dump() reset() record("a", "longasslongasslongasslongasslongasslongassvalue") dump() warn("hey") error("oh") record_dict({"test": 1}) assert isinstance(get_log_dict(), dict) and set(get_log_dict().keys()) == {"test"}
def render(self, *args, mode: str = 'human', **kwargs): """ Gym environment rendering :param mode: the rendering type """ try: imgs = self.get_images(*args, **kwargs) except NotImplementedError: logger.warn('Render not defined for {}'.format(self)) return # Create a big image by tiling images from subprocesses bigimg = tile_images(imgs) if mode == 'human': import cv2 # pytype:disable=import-error cv2.imshow('vecenv', bigimg[:, :, ::-1]) cv2.waitKey(1) elif mode == 'rgb_array': return bigimg else: raise NotImplementedError
def render(self, mode: str = 'human'): """ Gym environment rendering :param mode: the rendering type """ try: imgs = self.get_images() except NotImplementedError: logger.warn(f'Render not defined for {self}') return # Create a big image by tiling images from subprocesses bigimg = tile_images(imgs) if mode == 'human': import cv2 # pytype:disable=import-error cv2.imshow('vecenv', bigimg[:, :, ::-1]) cv2.waitKey(1) elif mode == 'rgb_array': return bigimg else: raise NotImplementedError(f'Render mode {mode} is not supported by VecEnvs')
def test_main(): """ tests for the logger module """ info("hi") debug("shouldn't appear") set_level(DEBUG) debug("should appear") folder = "/tmp/testlogging" if os.path.exists(folder): shutil.rmtree(folder) configure(folder=folder) logkv("a", 3) logkv("b", 2.5) dumpkvs() logkv("b", -2.5) logkv("a", 5.5) dumpkvs() info("^^^ should see a = 5.5") logkv_mean("b", -22.5) logkv_mean("b", -44.4) logkv("a", 5.5) dumpkvs() with ScopedConfigure(None, None): info("^^^ should see b = 33.3") with ScopedConfigure("/tmp/test-logger/", ["json"]): logkv("b", -2.5) dumpkvs() reset() logkv("a", "longasslongasslongasslongasslongasslongassvalue") dumpkvs() warn("hey") error("oh") logkvs({"test": 1})
def render(self): logger.warn("Render not defined for %s" % self)