[WIP] bpo-29672: Save and restore module warning registries in catch_warnings by segevfiner · Pull Request #8232 · python/cpython
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.
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
- Should
onceregistrybe saved and restored too? - A better test? I'm not sure how to test this better since
catch_warningsis used for the warnings tests themselves. - Consider the order that things are done in
catch_warnings.__enter__andcatch_warnings.__exit__, to cause the least disturbance due to threads (It's not thread safe anyhow...) - Documentation & NEWS.d obviously
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.
Czaki
mentioned this pull request
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.
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
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?