-
-
Notifications
You must be signed in to change notification settings - Fork 31.8k
[WIP] bpo-29672: Save and restore module warning registries in catch_warnings #8232
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
base: main
Are you sure you want to change the base?
[WIP] bpo-29672: Save and restore module warning registries in catch_warnings #8232
Conversation
This avoids catch_warnings wiping out all module warning registries due to calling _filters_mutated. Which causes all warnings recorded in those registries to be shown again.
041d004
to
64ceef9
Compare
Prevent entering catch_warnings so I don't get the same error printed over and over again. See https://bugs.python.org/issue29672 and python/cpython#8232
Not sure if bumping is appropriate, but here's hoping for a resolution to this soon! Here's how I became aware of it. |
Hi @segevfiner do you plan to continue working on this pull request? Or are you waiting for a review? I ask because I also encountered this problem and I wonder if it can be solved in the near future. |
It was waiting for a full review since a long time ago (2018...), and seems to have gone stale quite a bit by now. I can try to resolve the conflicts, but even then, I'm not sure any core maintainer will review this |
I imagine this has a wide impact, we've gotten numerous issues raised in pandas. As the linked issue points out, one can hit this from the standard library too. I don't understand why it wouldn't be reviewed, but maybe there is some way we can drum up support? |
This PR is stale because it has been open for 30 days with no activity. |
This avoids
catch_warnings
wiping out all module warning registries due to calling_filters_mutated
. Which causes all warnings recorded in those registries to be shown again.I'm not sure if this is the right approach for this, so I'm submitting this incomplete in order to garner feedback, and for answers to the questions in TODO below.
TODO
onceregistry
be saved and restored too?catch_warnings
is used for the warnings tests themselves.catch_warnings.__enter__
andcatch_warnings.__exit__
, to cause the least disturbance due to threads (It's not thread safe anyhow...)https://bugs.python.org/issue29672