diff --git a/examples/jupyter-lite.json b/examples/jupyter-lite.json index fefc22ff..0f649121 100644 --- a/examples/jupyter-lite.json +++ b/examples/jupyter-lite.json @@ -5,7 +5,8 @@ "litePluginSettings": { "@jupyterlite/pyodide-kernel-extension:kernel": { "loadPyodideOptions": { - "packages": ["matplotlib", "micropip", "numpy", "sqlite3", "ssl"] + "packages": ["matplotlib", "micropip", "numpy", "sqlite3", "ssl"], + "lockFileURL": "https://cdn.jsdelivr.net/pyodide/v0.25.0/full/pyodide-lock.json?from-lite-config=1" } } } diff --git a/packages/pyodide-kernel-extension/src/index.ts b/packages/pyodide-kernel-extension/src/index.ts index 7ef97ebd..85d30e7e 100644 --- a/packages/pyodide-kernel-extension/src/index.ts +++ b/packages/pyodide-kernel-extension/src/index.ts @@ -43,6 +43,9 @@ const kernel: JupyterLiteServerPlugin = { ) => { const config = JSON.parse(PageConfig.getOption('litePluginSettings') || '{}')[PLUGIN_ID] || {}; + + const baseUrl = PageConfig.getBaseUrl(); + const url = config.pyodideUrl || PYODIDE_CDN_URL; const pyodideUrl = URLExt.parse(url).href; @@ -56,7 +59,7 @@ const kernel: JupyterLiteServerPlugin = { for (const [key, value] of Object.entries(loadPyodideOptions)) { if (key.endsWith('URL') && typeof value === 'string') { - loadPyodideOptions[key] = URLExt.parse(key).href; + loadPyodideOptions[key] = new URL(value, baseUrl).href; } } diff --git a/packages/pyodide-kernel/src/kernel.ts b/packages/pyodide-kernel/src/kernel.ts index ce1af9bc..66597bd2 100644 --- a/packages/pyodide-kernel/src/kernel.ts +++ b/packages/pyodide-kernel/src/kernel.ts @@ -331,7 +331,7 @@ export namespace PyodideKernel { * @see https://pyodide.org/en/stable/usage/api/js-api.html#globalThis.loadPyodide */ loadPyodideOptions: Record & { - pyodideLockURL: string; + lockFileURL: string; packages: string[]; }; } diff --git a/packages/pyodide-kernel/src/tokens.ts b/packages/pyodide-kernel/src/tokens.ts index aa8700f2..3460cb99 100644 --- a/packages/pyodide-kernel/src/tokens.ts +++ b/packages/pyodide-kernel/src/tokens.ts @@ -77,7 +77,7 @@ export namespace IPyodideWorkerKernel { * @see https://pyodide.org/en/stable/usage/api/js-api.html#globalThis.loadPyodide */ loadPyodideOptions: Record & { - pyodideLockURL: string; + lockFileURL: string; packages: string[]; }; }