Skip to content

Commit d62b7f1

Browse files
MAINT Separate loadPyodide into multiple stages (pyodide#5746)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent e5aff66 commit d62b7f1

5 files changed

Lines changed: 432 additions & 287 deletions

File tree

docs/expected_js_docs.txt

Lines changed: 70 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,77 @@ js:module
66
js:typealias
77
exports.PyodideAPI
88
pyodide.ffi.TypedArray
9+
js:interface
10+
exports.PyodideConfig
11+
pyodide.Lockfile
12+
pyodide.LockfileInfo
13+
pyodide.LockfilePackage
14+
pyodide.PackageData
15+
js:attribute
16+
exports.PyodideConfig.args?
17+
exports.PyodideConfig.checkAPIVersion?
18+
exports.PyodideConfig.convertNullToNone?
19+
exports.PyodideConfig.enableRunUntilComplete?
20+
exports.PyodideConfig.env?
21+
exports.PyodideConfig.fullStdLib?
22+
exports.PyodideConfig.indexURL?
23+
exports.PyodideConfig.jsglobals?
24+
exports.PyodideConfig.lockFileContents?
25+
exports.PyodideConfig.lockFileURL?
26+
exports.PyodideConfig.packageBaseUrl?
27+
exports.PyodideConfig.packageCacheDir?
28+
exports.PyodideConfig.packages?
29+
exports.PyodideConfig.pyproxyToStringRepr?
30+
exports.PyodideConfig.stdLibURL?
31+
exports.PyodideConfig.toJsLiteralMap?
32+
exports.version
33+
pyodide.ERRNO_CODES
34+
pyodide.FS
35+
pyodide.Lockfile.info
36+
pyodide.Lockfile.packages
37+
pyodide.LockfileInfo.abi_version
38+
pyodide.LockfileInfo.arch
39+
pyodide.LockfileInfo.platform
40+
pyodide.LockfileInfo.python
41+
pyodide.LockfileInfo.version
42+
pyodide.LockfilePackage.depends
43+
pyodide.LockfilePackage.file_name
44+
pyodide.LockfilePackage.imports
45+
pyodide.LockfilePackage.install_dir
46+
pyodide.LockfilePackage.name
47+
pyodide.LockfilePackage.package_type
48+
pyodide.LockfilePackage.sha256
49+
pyodide.LockfilePackage.version
50+
pyodide.PATH
51+
pyodide.PackageData.fileName
52+
pyodide.PackageData.name
53+
pyodide.PackageData.packageType
54+
pyodide.PackageData.version
55+
pyodide.ffi.PyBufferView.c_contiguous
56+
pyodide.ffi.PyBufferView.data
57+
pyodide.ffi.PyBufferView.f_contiguous
58+
pyodide.ffi.PyBufferView.format
59+
pyodide.ffi.PyBufferView.itemsize
60+
pyodide.ffi.PyBufferView.nbytes
61+
pyodide.ffi.PyBufferView.ndim
62+
pyodide.ffi.PyBufferView.offset
63+
pyodide.ffi.PyBufferView.readonly
64+
pyodide.ffi.PyBufferView.shape
65+
pyodide.ffi.PyBufferView.strides
66+
pyodide.ffi.PyProxy.type
67+
pyodide.ffi.PyProxyWithLength.length
68+
pyodide.ffi.PythonError.type
69+
pyodide.globals
70+
pyodide.loadedPackages
71+
pyodide.lockfile
72+
pyodide.lockfileBaseUrl
73+
pyodide.pyodide_py
74+
pyodide.version
975
js:function
76+
exports.PyodideConfig.fsInit?
77+
exports.PyodideConfig.stderr?
78+
exports.PyodideConfig.stdin?
79+
exports.PyodideConfig.stdout?
1080
exports.loadPyodide
1181
pyodide.canvas.getCanvas2D
1282
pyodide.canvas.getCanvas3D
@@ -92,55 +162,6 @@ js:function
92162
pyodide.toPy
93163
pyodide.unpackArchive
94164
pyodide.unregisterJsModule
95-
js:attribute
96-
exports.version
97-
pyodide.ERRNO_CODES
98-
pyodide.FS
99-
pyodide.Lockfile.info
100-
pyodide.Lockfile.packages
101-
pyodide.LockfileInfo.abi_version
102-
pyodide.LockfileInfo.arch
103-
pyodide.LockfileInfo.platform
104-
pyodide.LockfileInfo.python
105-
pyodide.LockfileInfo.version
106-
pyodide.LockfilePackage.depends
107-
pyodide.LockfilePackage.file_name
108-
pyodide.LockfilePackage.imports
109-
pyodide.LockfilePackage.install_dir
110-
pyodide.LockfilePackage.name
111-
pyodide.LockfilePackage.package_type
112-
pyodide.LockfilePackage.sha256
113-
pyodide.LockfilePackage.version
114-
pyodide.PATH
115-
pyodide.PackageData.fileName
116-
pyodide.PackageData.name
117-
pyodide.PackageData.packageType
118-
pyodide.PackageData.version
119-
pyodide.ffi.PyBufferView.c_contiguous
120-
pyodide.ffi.PyBufferView.data
121-
pyodide.ffi.PyBufferView.f_contiguous
122-
pyodide.ffi.PyBufferView.format
123-
pyodide.ffi.PyBufferView.itemsize
124-
pyodide.ffi.PyBufferView.nbytes
125-
pyodide.ffi.PyBufferView.ndim
126-
pyodide.ffi.PyBufferView.offset
127-
pyodide.ffi.PyBufferView.readonly
128-
pyodide.ffi.PyBufferView.shape
129-
pyodide.ffi.PyBufferView.strides
130-
pyodide.ffi.PyProxy.type
131-
pyodide.ffi.PyProxyWithLength.length
132-
pyodide.ffi.PythonError.type
133-
pyodide.globals
134-
pyodide.loadedPackages
135-
pyodide.lockfile
136-
pyodide.lockfileBaseUrl
137-
pyodide.pyodide_py
138-
pyodide.version
139-
js:interface
140-
pyodide.Lockfile
141-
pyodide.LockfileInfo
142-
pyodide.LockfilePackage
143-
pyodide.PackageData
144165
js:class
145166
pyodide.ffi.PyAsyncGenerator
146167
pyodide.ffi.PyAsyncIterable

docs/sphinx_pyodide/sphinx_pyodide/mdn_xrefs.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,11 @@
193193
"FS",
194194
"https://emscripten.org/docs/api_reference/Filesystem-API.html",
195195
),
196+
(
197+
"js:class",
198+
"Partial",
199+
"https://www.typescriptlang.org/docs/handbook/utility-types.html#partialtype",
200+
),
196201
]:
197202
INVDATA[ty][key] = (
198203
"typescript docs",

src/js/emscripten-settings.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/** @private */
22

3-
import { ConfigType } from "./pyodide";
3+
import { PyodideConfigWithDefaults } from "./pyodide";
44
import { initializeNativeFS } from "./nativefs";
55
import { loadBinaryFile, getBinaryResponse } from "./compat";
66
import { API, PreRunFunc, type PyodideModule, type FSType } from "./types";
@@ -41,7 +41,9 @@ export interface EmscriptenSettings {
4141
*
4242
* @private
4343
*/
44-
export function createSettings(config: ConfigType): EmscriptenSettings {
44+
export function createSettings(
45+
config: PyodideConfigWithDefaults,
46+
): EmscriptenSettings {
4547
const API = { config, runtimeEnv: RUNTIME_ENV } as API;
4648
const settings: EmscriptenSettings = {
4749
noImageDecoding: true,
@@ -170,7 +172,9 @@ function installStdlib(stdlibURL: string): PreRunFunc {
170172
* Initialize the virtual file system, before loading Python interpreter.
171173
* @private
172174
*/
173-
function getFileSystemInitializationFuncs(config: ConfigType): PreRunFunc[] {
175+
function getFileSystemInitializationFuncs(
176+
config: PyodideConfigWithDefaults,
177+
): PreRunFunc[] {
174178
let stdLibURL;
175179
if (config.stdLibURL != undefined) {
176180
stdLibURL = config.stdLibURL;

0 commit comments

Comments
 (0)