From ea575f05a961ed8256c41011dec205c8b01629f0 Mon Sep 17 00:00:00 2001 From: Richard Higgins Date: Thu, 8 Jan 2026 15:06:17 -0800 Subject: [PATCH 1/5] Guard render_mode assignment in cogames env --- pufferlib/environments/cogames/environment.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pufferlib/environments/cogames/environment.py b/pufferlib/environments/cogames/environment.py index 0fbe47595..ede67d9a4 100644 --- a/pufferlib/environments/cogames/environment.py +++ b/pufferlib/environments/cogames/environment.py @@ -21,7 +21,9 @@ def make(name="cogames.cogs_v_clips.machina_1.open_world", variants=None, cogs=N simulator = Simulator() simulator.add_event_handler(StatsTracker(NoopStatsWriter())) env = PufferMettaGridEnv(simulator=simulator, cfg=env_cfg, buf=buf, seed=seed or 0) - env.render_mode = render + render_prop = getattr(type(env), "render_mode", None) + if isinstance(render_prop, property) and render_prop.fset: + env.render_mode = render if seed: env.reset(seed) return env From 485a8efe303b3accf848a2415dde3bbabcbbcd35 Mon Sep 17 00:00:00 2001 From: Richard Higgins Date: Thu, 8 Jan 2026 15:16:52 -0800 Subject: [PATCH 2/5] Pass render_mode into MettaGrid env --- pufferlib/environments/cogames/environment.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/pufferlib/environments/cogames/environment.py b/pufferlib/environments/cogames/environment.py index ede67d9a4..f10bb66d8 100644 --- a/pufferlib/environments/cogames/environment.py +++ b/pufferlib/environments/cogames/environment.py @@ -20,10 +20,13 @@ def make(name="cogames.cogs_v_clips.machina_1.open_world", variants=None, cogs=N render = "none" if render_mode == "auto" else "unicode" if render_mode in {"human", "ansi"} else render_mode simulator = Simulator() simulator.add_event_handler(StatsTracker(NoopStatsWriter())) - env = PufferMettaGridEnv(simulator=simulator, cfg=env_cfg, buf=buf, seed=seed or 0) - render_prop = getattr(type(env), "render_mode", None) - if isinstance(render_prop, property) and render_prop.fset: - env.render_mode = render + env = PufferMettaGridEnv( + simulator=simulator, + cfg=env_cfg, + buf=buf, + seed=seed or 0, + render_mode=render, + ) if seed: env.reset(seed) return env From 0c7b5f5a924e43672d8fd53113181b4fe950735c Mon Sep 17 00:00:00 2001 From: Richard Higgins Date: Thu, 8 Jan 2026 15:27:32 -0800 Subject: [PATCH 3/5] tweaks --- pufferlib/environments/cogames/environment.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/pufferlib/environments/cogames/environment.py b/pufferlib/environments/cogames/environment.py index f10bb66d8..f3b0bfeac 100644 --- a/pufferlib/environments/cogames/environment.py +++ b/pufferlib/environments/cogames/environment.py @@ -17,16 +17,10 @@ def make(name="cogames.cogs_v_clips.machina_1.open_world", variants=None, cogs=N variants = variants.split() if isinstance(variants, str) else variants _, env_cfg, _ = get_mission(mission_name, variants_arg=variants, cogs=cogs) - render = "none" if render_mode == "auto" else "unicode" if render_mode in {"human", "ansi"} else render_mode simulator = Simulator() simulator.add_event_handler(StatsTracker(NoopStatsWriter())) - env = PufferMettaGridEnv( - simulator=simulator, - cfg=env_cfg, - buf=buf, - seed=seed or 0, - render_mode=render, - ) + # render_mode is accepted for API compatibility but not used by MettaGridPufferEnv. + env = PufferMettaGridEnv(simulator=simulator, cfg=env_cfg, buf=buf, seed=seed or 0) if seed: env.reset(seed) return env From 6a6c432871139b87df9eb9e926415d09492437db Mon Sep 17 00:00:00 2001 From: Richard Higgins Date: Thu, 8 Jan 2026 15:50:30 -0800 Subject: [PATCH 4/5] no comment --- pufferlib/environments/cogames/environment.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pufferlib/environments/cogames/environment.py b/pufferlib/environments/cogames/environment.py index f3b0bfeac..cdfcc22b2 100644 --- a/pufferlib/environments/cogames/environment.py +++ b/pufferlib/environments/cogames/environment.py @@ -12,14 +12,15 @@ def env_creator(name="cogames.cogs_v_clips.machina_1.open_world"): return functools.partial(make, name=name) -def make(name="cogames.cogs_v_clips.machina_1.open_world", variants=None, cogs=None, render_mode="auto", seed=None, buf=None): +def make( + name="cogames.cogs_v_clips.machina_1.open_world", variants=None, cogs=None, render_mode="auto", seed=None, buf=None +): mission_name = name.removeprefix("cogames.cogs_v_clips.") if name.startswith("cogames.cogs_v_clips.") else name variants = variants.split() if isinstance(variants, str) else variants _, env_cfg, _ = get_mission(mission_name, variants_arg=variants, cogs=cogs) simulator = Simulator() simulator.add_event_handler(StatsTracker(NoopStatsWriter())) - # render_mode is accepted for API compatibility but not used by MettaGridPufferEnv. env = PufferMettaGridEnv(simulator=simulator, cfg=env_cfg, buf=buf, seed=seed or 0) if seed: env.reset(seed) From 5388ce7453ced902035cb984dac7770646f2f639 Mon Sep 17 00:00:00 2001 From: Richard Higgins Date: Thu, 8 Jan 2026 15:58:58 -0800 Subject: [PATCH 5/5] undo lint --- pufferlib/environments/cogames/environment.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pufferlib/environments/cogames/environment.py b/pufferlib/environments/cogames/environment.py index cdfcc22b2..75a8bae76 100644 --- a/pufferlib/environments/cogames/environment.py +++ b/pufferlib/environments/cogames/environment.py @@ -12,9 +12,7 @@ def env_creator(name="cogames.cogs_v_clips.machina_1.open_world"): return functools.partial(make, name=name) -def make( - name="cogames.cogs_v_clips.machina_1.open_world", variants=None, cogs=None, render_mode="auto", seed=None, buf=None -): +def make(name="cogames.cogs_v_clips.machina_1.open_world", variants=None, cogs=None, render_mode="auto", seed=None, buf=None): mission_name = name.removeprefix("cogames.cogs_v_clips.") if name.startswith("cogames.cogs_v_clips.") else name variants = variants.split() if isinstance(variants, str) else variants _, env_cfg, _ = get_mission(mission_name, variants_arg=variants, cogs=cogs)