[Python-checkins] make regen-stdlib-module-names rejects test modules (#105921)

vstinner webhook-mailer at python.org
Tue Jun 20 04:12:48 EDT 2023


https://github.com/python/cpython/commit/155577de1b6a7f4404b2bf90bcc1a588201550da
commit: 155577de1b6a7f4404b2bf90bcc1a588201550da
branch: main
author: Victor Stinner <vstinner at python.org>
committer: vstinner <vstinner at python.org>
date: 2023-06-20T10:12:44+02:00
summary:

make regen-stdlib-module-names rejects test modules (#105921)

Make sure that sys.stdlib_module_names doesn't contain test modules.

files:
M Tools/build/generate_stdlib_module_names.py

diff --git a/Tools/build/generate_stdlib_module_names.py b/Tools/build/generate_stdlib_module_names.py
index 17668f4a45647..72f6923c7c316 100644
--- a/Tools/build/generate_stdlib_module_names.py
+++ b/Tools/build/generate_stdlib_module_names.py
@@ -43,6 +43,16 @@
     'xxsubtype',
 }
 
+ALLOW_TEST_MODULES = {
+    'doctest',
+    'unittest',
+}
+
+# Built-in modules
+def list_builtin_modules(names):
+    names |= set(sys.builtin_module_names)
+
+
 # Pure Python modules (Lib/*.py)
 def list_python_modules(names):
     for filename in os.listdir(STDLIB_PATH):
@@ -93,7 +103,9 @@ def list_frozen(names):
 
 
 def list_modules():
-    names = set(sys.builtin_module_names)
+    names = set()
+
+    list_builtin_modules(names)
     list_modules_setup_extensions(names)
     list_packages(names)
     list_python_modules(names)
@@ -106,9 +118,12 @@ def list_modules():
         if package_name in IGNORE:
             names.discard(name)
 
+    # Sanity checks
     for name in names:
         if "." in name:
-            raise Exception("sub-modules must not be listed")
+            raise Exception(f"sub-modules must not be listed: {name}")
+        if ("test" in name or "xx" in name) and name not in ALLOW_TEST_MODULES:
+            raise Exception(f"test modules must not be listed: {name}")
 
     return names
 



More information about the Python-checkins mailing list