aboutsummaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorChristian Heimes <christian@python.org>2022-09-17 16:40:24 +0200
committerGitHub <noreply@github.com>2022-09-17 16:40:24 +0200
commit876606fc65d94c8098560d82572bfba4a6a07f7d (patch)
tree6ba1735246cc1df92baa98b379d2f5080d779175 /Tools
parentd39fce0f038c02bdbb1b379df1cca8297c9c368a (diff)
downloadcpython3-876606fc65d94c8098560d82572bfba4a6a07f7d.tar.gz
[3.11] gh-96883: browser: include concurrent.futures (GH-96886) (GH-96888)
Diffstat (limited to 'Tools')
-rwxr-xr-xTools/wasm/wasm_assets.py34
1 files changed, 17 insertions, 17 deletions
diff --git a/Tools/wasm/wasm_assets.py b/Tools/wasm/wasm_assets.py
index 9b0bee33dc..6557e3f37a 100755
--- a/Tools/wasm/wasm_assets.py
+++ b/Tools/wasm/wasm_assets.py
@@ -58,6 +58,8 @@ OMIT_FILES = (
# Pure Python implementations of C extensions
"_pydecimal.py",
"_pyio.py",
+ # concurrent threading
+ "concurrent/futures/thread.py",
# Misc unused or large files
"pydoc_data/",
"msilib/",
@@ -99,13 +101,12 @@ OMIT_MODULE_FILES = {
"_dbm": ["dbm/ndbm.py"],
"_gdbm": ["dbm/gnu.py"],
"_json": ["json/"],
- "_multiprocessing": ["concurrent/", "multiprocessing/"],
+ "_multiprocessing": ["concurrent/futures/process.py", "multiprocessing/"],
"pyexpat": ["xml/", "xmlrpc/"],
"readline": ["rlcompleter.py"],
"_sqlite3": ["sqlite3/"],
"_ssl": ["ssl.py"],
"_tkinter": ["idlelib/", "tkinter/", "turtle.py", "turtledemo/"],
-
"_zoneinfo": ["zoneinfo/"],
}
@@ -125,21 +126,18 @@ SYSCONFIG_NAMES = (
def get_builddir(args: argparse.Namespace) -> pathlib.Path:
- """Get builddir path from pybuilddir.txt
- """
+ """Get builddir path from pybuilddir.txt"""
with open("pybuilddir.txt", encoding="utf-8") as f:
builddir = f.read()
return pathlib.Path(builddir)
def get_sysconfigdata(args: argparse.Namespace) -> pathlib.Path:
- """Get path to sysconfigdata relative to build root
- """
+ """Get path to sysconfigdata relative to build root"""
data_name = sysconfig._get_sysconfigdata_name()
if not data_name.startswith(SYSCONFIG_NAMES):
raise ValueError(
- f"Invalid sysconfig data name '{data_name}'.",
- SYSCONFIG_NAMES
+ f"Invalid sysconfig data name '{data_name}'.", SYSCONFIG_NAMES
)
filename = data_name + ".py"
return args.builddir / filename
@@ -150,20 +148,23 @@ def create_stdlib_zip(
*,
optimize: int = 0,
) -> None:
- def filterfunc(name: str) -> bool:
- return not name.startswith(args.omit_subdirs_absolute)
+ def filterfunc(filename: str) -> bool:
+ pathname = pathlib.Path(filename).resolve()
+ return pathname not in args.omit_files_absolute
with zipfile.PyZipFile(
- args.wasm_stdlib_zip, mode="w", compression=args.compression, optimize=optimize
+ args.wasm_stdlib_zip,
+ mode="w",
+ compression=args.compression,
+ optimize=optimize,
) as pzf:
if args.compresslevel is not None:
pzf.compresslevel = args.compresslevel
pzf.writepy(args.sysconfig_data)
for entry in sorted(args.srcdir_lib.iterdir()):
+ entry = entry.resolve()
if entry.name == "__pycache__":
continue
- if entry in args.omit_files_absolute:
- continue
if entry.name.endswith(".py") or entry.is_dir():
# writepy() writes .pyc files (bytecode).
pzf.writepy(entry, filterfunc=filterfunc)
@@ -247,10 +248,9 @@ def main():
if not extmods.get(modname):
omit_files.extend(modfiles)
- args.omit_files_absolute = {args.srcdir_lib / name for name in omit_files}
- args.omit_subdirs_absolute = tuple(
- str(args.srcdir_lib / name) for name in OMIT_SUBDIRS
- )
+ args.omit_files_absolute = {
+ (args.srcdir_lib / name).resolve() for name in omit_files
+ }
# Empty, unused directory for dynamic libs, but required for site initialization.
args.wasm_dynload.mkdir(parents=True, exist_ok=True)