style: Enable flake8-errmsg rules and fix errors #4845
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.
This PR enables 3 more ruff rules, derived from the flake8-errmsg linter.
These rules checks for the use of string literals, f-strings or .format() strings used in exception constructors.
By moving the string to a separate variable, msg, this makes the traceback shown to users clearer, as the raise statement (repeated in the traceback) doesn't contain the (incomplete) error message twice.
It also helps a bit with python formatting, less often the statement needs to be broken in 3 lines with parentheses.
The examples from the ruff rule pages are really clear on the end result.
Taken from https://docs.astral.sh/ruff/rules/raw-string-in-exception/: