This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 6dd73d2fe26 Make StreamCaptureManager reset logging handlers on Python
3.13 (#55158)
6dd73d2fe26 is described below
commit 6dd73d2fe268820fd30550344717d3817ab26da5
Author: Ash Berlin-Taylor <[email protected]>
AuthorDate: Tue Sep 2 00:27:56 2025 +0100
Make StreamCaptureManager reset logging handlers on Python 3.13 (#55158)
The approach I used worked up until 3.12, but the "with lock" approach works
all the way back to at least 3.9, and likely much further.
The price way pay for grubbing around in low level details of Logging
module.
---
devel-common/src/tests_common/test_utils/stream_capture_manager.py | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/devel-common/src/tests_common/test_utils/stream_capture_manager.py
b/devel-common/src/tests_common/test_utils/stream_capture_manager.py
index aec4865d326..097876ec4b7 100644
--- a/devel-common/src/tests_common/test_utils/stream_capture_manager.py
+++ b/devel-common/src/tests_common/test_utils/stream_capture_manager.py
@@ -89,15 +89,12 @@ class StreamCaptureManager(ExitStack):
original_handlers = list(root_logger.handlers)
def reset_handlers():
- from logging import _acquireLock, _releaseLock
+ from logging import _lock
root_logger = logging.getLogger()
- _acquireLock()
- try:
+ with _lock:
root_logger.handlers = original_handlers
- finally:
- _releaseLock()
self.callback(reset_handlers)