fix(typing): Resolve mypy==1.11.0
issues in plugin_registry
#3487
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
Description
The release of Mypy 1.11 introduced stricter typing for
functools.partial
.The existing
# type: ignore
comments were no longer sufficient and correcting everything (whilst not breaking all the derived registries) was more complex than I'd like.Hopefully this summary is easier to understand than the diff alone.
Fix
The fix is mostly 2 changes:
assert isinstance(...)
to a narrowing functionFor 2, I have added a courtesy deprecation.
No current
altair
code (including tests) used theplugin_type
argument.I don't think
PluginRegistry
is intended to be public as it doesn't appear inalt.__all__
.The new default has identical behaviour to the previous default
It is also safer as it won't be disabled by optimizations & better adheres to the current typing spec guidance.