Skip to content

MNT: Use WeakKeyDictionary and WeakSet in Grouper #25352

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Mar 1, 2023

Conversation

greglucas
Copy link
Contributor

PR Summary

Rather than handling the weakrefs ourselves, just use the builtin WeakKeyDictionary and WeakSet instead. This will automatically remove dead references meaning we can remove the clean() method.

Follow-up from: #25332

PR Checklist

Documentation and Tests

  • [-] Has pytest style unit tests (and pytest passes)
  • Documentation is sphinx and numpydoc compliant (the docs should build without error).
  • [-] New plotting related features are documented with examples.

Release Notes

  • [-] New features are marked with a .. versionadded:: directive in the docstring and documented in doc/users/next_whats_new/
  • [-] API changes are marked with a .. versionchanged:: directive in the docstring and documented in doc/api/next_api_changes/
  • Release notes conform with instructions in next_whats_new/README.rst or next_api_changes/README.rst

Rather than handling the weakrefs ourselves, just use the
builtin WeakKeyDictionary instead. This will automatically
remove dead references meaning we can remove the clean() method.
@tacaswell tacaswell added this to the v3.8.0 milestone Mar 1, 2023
@tacaswell tacaswell merged commit 6db06ab into matplotlib:main Mar 1, 2023
@tacaswell
Copy link
Member

Thank you. I think this also fixes a bug in the pickle logic that would leak None out for weakrefs that had expired.

@greglucas greglucas deleted the grouper-pickle branch March 1, 2023 22:21
@QuLogic QuLogic added the topic: pickle Issues to do with pickling label Mar 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic: pickle Issues to do with pickling
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants