Standardize creation of FigureManager from a given FigureCanvas class. #22925
+128
−93
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.
The
new_manager
classmethod may appear to belong more naturally to theFigureManager class rather than the FigureCanvas class, but putting it
on FigureCanvas has multiple advantages:
FigureCanvas instance, which may not even have a corresponding manager
(e.g.
subplot_tool
).FigureCanvas classes (indeed, FigureManagerQT can manage both
FigureCanvasQTAgg and FigureCanvasQTCairo and also the mplcairo Qt
canvas classes), whereas we don't have multiple FigureManager classes
for a given FigureCanvas class.
Still, put the actual logic in FigureManager.create_with_canvas and
access it via some indirection, as suggested by timhoffm (#22895).
See discussion at #18854 and #22895.
PR Summary
PR Checklist
Tests and Styling
pytest
passes).flake8-docstrings
and runflake8 --docstring-convention=all
).Documentation
doc/users/next_whats_new/
(follow instructions in README.rst there).doc/api/next_api_changes/
(follow instructions in README.rst there).