mirror of
https://github.com/python/cpython.git
synced 2025-12-31 04:23:37 +00:00
Make `warnings.catch_warnings()` use a context variable for holding the warning filtering state if the `sys.flags.context_aware_warnings` flag is set to true. This makes using the context manager thread-safe in multi-threaded programs. Add the `sys.flags.thread_inherit_context` flag. If true, starting a new thread with `threading.Thread` will use a copy of the context from the caller of `Thread.start()`. Both these flags are set to true by default for the free-threaded build and false for the default build. Move the Python implementation of warnings.py into _py_warnings.py. Make _contextvars a builtin module. Co-authored-by: Kumar Aditya <kumaraditya@python.org>
7 lines
510 B
ReStructuredText
7 lines
510 B
ReStructuredText
Make :class:`warnings.catch_warnings` use a context variable for holding
|
|
the warning filtering state if the :data:`sys.flags.context_aware_warnings`
|
|
flag is set to true. This makes using the context manager thread-safe in
|
|
multi-threaded programs. The flag is true by default in free-threaded builds
|
|
and is otherwise false. The value of the flag can be overridden by the
|
|
the :option:`-X context_aware_warnings <-X>` command-line option or by the
|
|
:envvar:`PYTHON_CONTEXT_AWARE_WARNINGS` environment variable.
|