mirror of
https://github.com/python/cpython.git
synced 2025-07-07 11:25:30 +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>
65 lines
1.4 KiB
C
65 lines
1.4 KiB
C
/* Module configuration */
|
|
|
|
/* !!! !!! !!! This file is edited by the makesetup script !!! !!! !!! */
|
|
|
|
/* This file contains the table of built-in modules.
|
|
See create_builtin() in import.c. */
|
|
|
|
#include "Python.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
/* -- ADDMODULE MARKER 1 -- */
|
|
|
|
extern PyObject* PyMarshal_Init(void);
|
|
extern PyObject* PyInit__imp(void);
|
|
extern PyObject* PyInit_gc(void);
|
|
extern PyObject* PyInit__ast(void);
|
|
extern PyObject* PyInit__tokenize(void);
|
|
extern PyObject* PyInit__contextvars(void);
|
|
extern PyObject* _PyWarnings_Init(void);
|
|
extern PyObject* PyInit__string(void);
|
|
|
|
struct _inittab _PyImport_Inittab[] = {
|
|
|
|
/* -- ADDMODULE MARKER 2 -- */
|
|
|
|
/* This module lives in marshal.c */
|
|
{"marshal", PyMarshal_Init},
|
|
|
|
/* This lives in import.c */
|
|
{"_imp", PyInit__imp},
|
|
|
|
/* This lives in Python/Python-ast.c */
|
|
{"_ast", PyInit__ast},
|
|
|
|
/* This lives in Python/Python-tokenize.c */
|
|
{"_tokenize", PyInit__tokenize},
|
|
|
|
/* These entries are here for sys.builtin_module_names */
|
|
{"builtins", NULL},
|
|
{"sys", NULL},
|
|
|
|
/* This lives in gcmodule.c */
|
|
{"gc", PyInit_gc},
|
|
|
|
/* This lives in Python/_contextvars.c */
|
|
{"_contextvars", PyInit__contextvars},
|
|
|
|
/* This lives in _warnings.c */
|
|
{"_warnings", _PyWarnings_Init},
|
|
|
|
/* This lives in Objects/unicodeobject.c */
|
|
{"_string", PyInit__string},
|
|
|
|
/* Sentinel */
|
|
{0, 0}
|
|
};
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|