Resolve RcParams MRO confusion and delete unnecessary methods. #1494
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
Working to resolve the following issue raised by
mypy
:It seems that
RcParams
inherits from bothdict
andMutableMapping
, which is confusingmypy
becausedict
is also aMutableMapping
. Additionally, it seems that this confusing MRO situation has led to the need to redefine several of theMutableMapping
methods explicitly, to avoid MRO-related dispatch issues.I'm not sure why
RcParams
needsMutableMapping
in addition to havingdict
as a superclass, so I'm leaving this PR as a draft for now. None of the documentation for the class seems to explain this quirk, so I'm hoping that either test cases surface some leads, or one of the maintainers recalls what the reason might be.If the tests don't show any issues, and none of the maintainers see a reason to have the multiple inheritance setup and its associated MRO issues, then it may be worth removing
MutableMapping
as this PR does, and clearing up themypy
error and the two associated (and currently suppressed)pylint
errors.Checklist