From adc2bd0599cf24070fc332f5945f13078df97364 Mon Sep 17 00:00:00 2001 From: Sergey B Kirpichev Date: Wed, 28 Jan 2026 05:56:21 +0300 Subject: [PATCH 1/2] gh-140824: workaround math.integer module name for sys.stdlib_module_names --- Python/sysmodule.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Python/sysmodule.c b/Python/sysmodule.c index 94eb3164ecad58..e071644a61b1ba 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -2899,6 +2899,14 @@ list_stdlib_module_names(void) Py_DECREF(names); return NULL; } + if (PyUnicode_EqualToUTF8(name, "_math_integer")) { + Py_DECREF(name); + name = PyUnicode_FromString("math.integer"); + if (name == NULL) { + Py_DECREF(names); + return NULL; + } + } PyTuple_SET_ITEM(names, i, name); } From 12850fd26d2c96ff223ca03e64113af87f709fd5 Mon Sep 17 00:00:00 2001 From: Sergey B Kirpichev Date: Wed, 28 Jan 2026 12:16:55 +0300 Subject: [PATCH 2/2] remove _math_integer from sys.stdlib_module_names --- Python/stdlib_module_names.h | 1 - Python/sysmodule.c | 8 -------- Tools/build/generate_stdlib_module_names.py | 3 ++- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/Python/stdlib_module_names.h b/Python/stdlib_module_names.h index 8937e666bbbdd5..47c88839bc87b2 100644 --- a/Python/stdlib_module_names.h +++ b/Python/stdlib_module_names.h @@ -51,7 +51,6 @@ static const char* _Py_stdlib_module_names[] = { "_lsprof", "_lzma", "_markupbase", -"_math_integer", "_md5", "_multibytecodec", "_multiprocessing", diff --git a/Python/sysmodule.c b/Python/sysmodule.c index e071644a61b1ba..94eb3164ecad58 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -2899,14 +2899,6 @@ list_stdlib_module_names(void) Py_DECREF(names); return NULL; } - if (PyUnicode_EqualToUTF8(name, "_math_integer")) { - Py_DECREF(name); - name = PyUnicode_FromString("math.integer"); - if (name == NULL) { - Py_DECREF(names); - return NULL; - } - } PyTuple_SET_ITEM(names, i, name); } diff --git a/Tools/build/generate_stdlib_module_names.py b/Tools/build/generate_stdlib_module_names.py index bda72539640611..0690aecf552309 100644 --- a/Tools/build/generate_stdlib_module_names.py +++ b/Tools/build/generate_stdlib_module_names.py @@ -81,7 +81,8 @@ def list_packages(names: set[str]) -> None: # includes Windows and macOS extensions. def list_modules_setup_extensions(names: set[str]) -> None: checker = ModuleChecker() - names.update(checker.list_module_names(all=True)) + # filter out math.integer submodule + names.update(checker.list_module_names(all=True) - {'_math_integer'}) # List frozen modules of the PyImport_FrozenModules list (Python/frozen.c).