feat: throw error on invalid render mode 🧑💻 #580
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
I changed the
UserWarning
thrown byVideoRecorder
into aValueError
that gets thrown ifrender_mode
is an invalid value. The exception is mirrored inside the constructor ofRecordVideo
so that it fails as soon as possible.Motivation
Right now, when you wrap an env in a
RecordVideo
, the code throws only an user warning at the end of the training when it tries to save a video butrender_mode
is set toNone
, or in general to any other value exceptrgb_array
andrgb_array_list
.It would be nice to check the render mode early, ideally inside the
RecordVideo
constructor, so that the training doesn't have to be restarted in case the parameter was accidentally left unspecified.env = RecordVideo(env, directory)
train(model, env)
...
# throws user warning here, without recording
# you now have to start from scratch
env = RecordVideo(env, directory) # will throw exception 🚫
env = RecordVideo(env, directory) # will continue execution ✅
Fixes #560
Type of change
Checklist:
pre-commit
checks withpre-commit run --all-files
(seeCONTRIBUTING.md
instructions to set it up)