Python 3.13 support in validator.py #1326
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.
Fixes #1173
Why This Broke in Python 3.13
Python ≤ 3.12: When
exec(func)was called with only globals, the dynamicallygenerated generate_validate_allfunction was accessible in the local scope, and the fallbacklocals()['generate_validate_all']worked.Python 3.13: The scoping behavior changed. When
exec()is called with only globals, the generated function is no longer accessible vialocals(), causing theKeyError: 'generate_validate_all'encountered in #1173.