Fix return_info for wrappers (#2612)

* Fix `return_info` for Observation wrappers, Atari (?) and framestack

* Make type checkers and IDEs happier

* Merge in #2454

* Update the info dict based on no-op steps
Some type hints

* Bug fix

* Handle resets during frameskip
This commit is contained in:
Ariel Kwiatkowski
2022-02-17 18:03:35 +01:00
committed by GitHub
parent 8dc1b52d21
commit 3fa10a2360
3 changed files with 50 additions and 24 deletions

View File

@@ -119,6 +119,14 @@ class FrameStack(ObservationWrapper):
return self.observation(), reward, done, info
def reset(self, **kwargs):
observation = self.env.reset(**kwargs)
[self.frames.append(observation) for _ in range(self.num_stack)]
return self.observation()
if kwargs.get("return_info", False):
obs, info = self.env.reset(**kwargs)
else:
obs = self.env.reset(**kwargs)
info = None # Unused
[self.frames.append(obs) for _ in range(self.num_stack)]
if kwargs.get("return_info", False):
return self.observation(), info
else:
return self.observation()