--- a/Tools/wasm/wasm_assets.py +++ b/Tools/wasm/wasm_assets.py @@ -47,13 +47,20 @@ # webbrowser "antigravity.py", "webbrowser.py", - # Pure Python implementations of C extensions - "_pydecimal.py", + # Pure Python implementations of C extensions. + # NOTE: keep "_pydecimal.py" so decimal.py can fall back to it when the + # _decimal C extension is not built (NuttX targets do not link libmpdec). "_pyio.py", # concurrent threading "concurrent/futures/thread.py", # Misc unused or large files "pydoc_data/", + # Tooling/REPL extras not needed on a constrained embedded target. + "unittest/", + "_pyrepl/", + "idlelib/", + "turtledemo/", + "wsgiref/", ) # Synchronous network I/O and protocols are not supported; for example, @@ -80,7 +87,8 @@ "_asyncio": ["asyncio/"], "_curses": ["curses/"], "_ctypes": ["ctypes/"], - "_decimal": ["decimal.py"], + # decimal.py is intentionally NOT omitted here: it ships a pure-Python + # fallback (_pydecimal) used when the _decimal C ext is unavailable. "_dbm": ["dbm/ndbm.py"], "_gdbm": ["dbm/gnu.py"], "_json": ["json/"],