Skip to content

Commit f508dc6

Browse files
authored
Merge pull request #630 from DEUCE1957/EpisodeData
Debug: Fix Missing Legal and Ambigious Arrays in CompactEpisodeData
2 parents d3a1c06 + 2bc55f8 commit f508dc6

File tree

3 files changed

+15
-8
lines changed

3 files changed

+15
-8
lines changed

grid2op/Episode/CompactEpisodeData.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,11 @@ def __init__(self, env, obs, exp_dir, ep_id:str=None):
9595
"""
9696
if exp_dir is not None:
9797
self.exp_dir = p(exp_dir)
98+
self.exp_dir = self.exp_dir / "CompactEpisodeData"
99+
self.exp_dir.mkdir(parents=False, exist_ok=True)
98100
else:
99101
self.exp_dir = None
100-
self.array_names = ("actions", "env_actions", "attacks", "observations", "rewards", "other_rewards", "disc_lines", "times")
102+
self.array_names = ("actions", "env_actions", "attacks", "observations", "rewards", "other_rewards", "disc_lines", "times", "legal", "ambiguous")
101103
self.space_names = ("observation_space", "action_space", "attack_space", "env_modification_space")
102104
if ep_id is None:
103105
self.ep_id = env.chronics_handler.get_name()

grid2op/Runner/runner.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1728,7 +1728,7 @@ def run(
17281728
)
17291729
else:
17301730
if add_detailed_output and (_IS_WINDOWS or _IS_MACOS):
1731-
self.logger.warn(
1731+
self.logger.warning(
17321732
"Parallel run are not fully supported on windows or macos when "
17331733
'"add_detailed_output" is True. So we decided '
17341734
"to fully deactivate them."

grid2op/tests/test_CompactEpisodeData.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import unittest
1313

1414
import grid2op
15-
from grid2op.Agent import OneChangeThenNothing
15+
from grid2op.Agent import DoNothingAgent, OneChangeThenNothing
1616
from grid2op.tests.helper_path_test import *
1717
from grid2op.Chronics import Multifolder
1818
from grid2op.Reward import L2RPNReward
@@ -140,6 +140,8 @@ def act(self, observation, reward, done=False):
140140
assert len(episode_data.observations) == self.max_iter + 1
141141
assert len(episode_data.env_actions) == self.max_iter
142142
assert len(episode_data.attacks) == self.max_iter
143+
assert len(episode_data.ambiguous) == self.max_iter
144+
assert len(episode_data.legal) == self.max_iter
143145

144146
def test_one_episode_with_saving(self):
145147
f = tempfile.mkdtemp()
@@ -163,6 +165,7 @@ def test_collection_wrapper_after_run(self):
163165
OneChange = OneChangeThenNothing.gen_next(
164166
{"set_bus": {"lines_or_id": [(1, -1)]}}
165167
)
168+
# env.reset(options=)
166169
runner = Runner(
167170
init_grid_path=self.init_grid_path,
168171
init_env_path=self.init_grid_path,
@@ -178,9 +181,11 @@ def test_collection_wrapper_after_run(self):
178181
agentClass=OneChange,
179182
use_compact_episode_data=True,
180183
)
181-
ep_id, ep_name, cum_reward, timestep, max_ts, episode_data = runner.run_one_episode(
182-
max_iter=self.max_iter, detailed_output=True
183-
)
184+
with warnings.catch_warnings():
185+
warnings.filterwarnings("ignore")
186+
*_, episode_data = runner.run_one_episode(
187+
max_iter=self.max_iter, detailed_output=True,
188+
)
184189
# Check that the type of first action is set bus
185190
assert episode_data.action_space.from_vect(episode_data.actions[0]).get_types()[2]
186191

@@ -257,7 +262,7 @@ def test_with_opponent(self):
257262
)
258263

259264
episode_data = CompactEpisodeData.from_disk(path=f, ep_id=res[0][1])
260-
lines_impacted, subs_impacted = episode_data.attack_space.from_vect(episode_data.attacks[0]).get_topological_impact()
265+
lines_impacted, _ = episode_data.attack_space.from_vect(episode_data.attacks[0]).get_topological_impact()
261266
assert lines_impacted[3]
262267

263268
def test_can_return_ep_data(self):
@@ -296,4 +301,4 @@ def test_can_return_ep_data(self):
296301

297302

298303
if __name__ == "__main__":
299-
unittest.main()
304+
unittest.main()

0 commit comments

Comments
 (0)