Skip to content

Commit 64fc105

Browse files
authored
bpo-42955: Remove sub-packages from sys.stdlib_module_names (GH-24353)
1 parent c9b8e9c commit 64fc105

File tree

3 files changed

+11
-34
lines changed

3 files changed

+11
-34
lines changed

Doc/library/sys.rst

+4-3
Original file line numberDiff line numberDiff line change
@@ -1575,9 +1575,10 @@ always available.
15751575
All module kinds are listed: pure Python, built-in, frozen and extension
15761576
modules. Test modules are excluded.
15771577

1578-
For packages, only sub-packages are listed, not sub-modules. For example,
1579-
``concurrent`` package and ``concurrent.futures`` sub-package are listed,
1580-
but not ``concurrent.futures.base`` sub-module.
1578+
For packages, only the main package is listed: sub-packages and sub-modules
1579+
are not listed. For example, the ``email`` package is listed, but the
1580+
``email.mime`` sub-package and the ``email.message`` sub-module are not
1581+
listed.
15811582

15821583
See also the :attr:`sys.builtin_module_names` list.
15831584

Python/stdlib_module_names.h

-12
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,6 @@ static const char* _Py_stdlib_module_names[] = {
117117
"colorsys",
118118
"compileall",
119119
"concurrent",
120-
"concurrent.futures",
121120
"configparser",
122121
"contextlib",
123122
"contextvars",
@@ -126,7 +125,6 @@ static const char* _Py_stdlib_module_names[] = {
126125
"crypt",
127126
"csv",
128127
"ctypes",
129-
"ctypes.macholib",
130128
"curses",
131129
"dataclasses",
132130
"datetime",
@@ -135,13 +133,10 @@ static const char* _Py_stdlib_module_names[] = {
135133
"difflib",
136134
"dis",
137135
"distutils",
138-
"distutils.command",
139136
"doctest",
140137
"email",
141-
"email.mime",
142138
"encodings",
143139
"ensurepip",
144-
"ensurepip._bundled",
145140
"enum",
146141
"errno",
147142
"faulthandler",
@@ -178,8 +173,6 @@ static const char* _Py_stdlib_module_names[] = {
178173
"json",
179174
"keyword",
180175
"lib2to3",
181-
"lib2to3.fixes",
182-
"lib2to3.pgen2",
183176
"linecache",
184177
"locale",
185178
"logging",
@@ -194,7 +187,6 @@ static const char* _Py_stdlib_module_names[] = {
194187
"msilib",
195188
"msvcrt",
196189
"multiprocessing",
197-
"multiprocessing.dummy",
198190
"netrc",
199191
"nis",
200192
"nntplib",
@@ -304,10 +296,6 @@ static const char* _Py_stdlib_module_names[] = {
304296
"wsgiref",
305297
"xdrlib",
306298
"xml",
307-
"xml.dom",
308-
"xml.etree",
309-
"xml.parsers",
310-
"xml.sax",
311299
"xmlrpc",
312300
"zipapp",
313301
"zipfile",

Tools/scripts/generate_stdlib_module_names.py

+7-19
Original file line numberDiff line numberDiff line change
@@ -57,29 +57,17 @@ def list_python_modules(names):
5757
names.add(name)
5858

5959

60-
def _list_sub_packages(path, names, parent=None):
61-
for name in os.listdir(path):
60+
# Packages in Lib/
61+
def list_packages(names):
62+
for name in os.listdir(STDLIB_PATH):
6263
if name in IGNORE:
6364
continue
64-
package_path = os.path.join(path, name)
65+
package_path = os.path.join(STDLIB_PATH, name)
6566
if not os.path.isdir(package_path):
6667
continue
67-
if not any(package_file.endswith(".py")
68-
for package_file in os.listdir(package_path)):
69-
continue
70-
if parent:
71-
qualname = f"{parent}.{name}"
72-
else:
73-
qualname = name
74-
if qualname in IGNORE:
75-
continue
76-
names.add(qualname)
77-
_list_sub_packages(package_path, names, qualname)
78-
79-
80-
# Packages and sub-packages
81-
def list_packages(names):
82-
_list_sub_packages(STDLIB_PATH, names)
68+
if any(package_file.endswith(".py")
69+
for package_file in os.listdir(package_path)):
70+
names.add(name)
8371

8472

8573
# Extension modules built by setup.py

0 commit comments

Comments
 (0)