From ea0e186c1927a6a46355c0af92c79db4d73165cb Mon Sep 17 00:00:00 2001 From: johnnash2025 Date: Sun, 25 May 2025 13:52:52 +0900 Subject: [PATCH] fixed pyodide.js --- package.json | 7 ++-- scripts/prepare-pyodide.js | 85 -------------------------------------- 2 files changed, 3 insertions(+), 89 deletions(-) delete mode 100644 scripts/prepare-pyodide.js diff --git a/package.json b/package.json index e10c98c6a..69007ecd8 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,8 @@ "version": "0.3.35", "private": true, "scripts": { - "dev": "npm run pyodide:fetch && vite dev --host", - "build": "npm run pyodide:fetch && vite build", + "dev": "vite dev --host", + "build": "vite build", "preview": "vite preview", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", @@ -16,8 +16,7 @@ "format:backend": "black . --exclude \".venv/|/venv/\"", "i18n:parse": "i18next --config i18next-parser.config.ts && prettier --write \"src/lib/i18n/**/*.{js,json}\"", "cy:open": "cypress open", - "test:frontend": "vitest --passWithNoTests", - "pyodide:fetch": "node scripts/prepare-pyodide.js" + "test:frontend": "vitest --passWithNoTests" }, "devDependencies": { "@sveltejs/adapter-auto": "3.2.2", diff --git a/scripts/prepare-pyodide.js b/scripts/prepare-pyodide.js deleted file mode 100644 index 5aaac5927..000000000 --- a/scripts/prepare-pyodide.js +++ /dev/null @@ -1,85 +0,0 @@ -const packages = [ - 'micropip', - 'packaging', - 'requests', - 'beautifulsoup4', - 'numpy', - 'pandas', - 'matplotlib', - 'scikit-learn', - 'scipy', - 'regex', - 'seaborn' -]; - -import { loadPyodide } from 'pyodide'; -import { writeFile, readFile, copyFile, readdir, rmdir } from 'fs/promises'; - -async function downloadPackages() { - console.log('Setting up pyodide + micropip'); - - let pyodide; - try { - pyodide = await loadPyodide({ - packageCacheDir: 'static/pyodide' - }); - } catch (err) { - console.error('Failed to load Pyodide:', err); - return; - } - - const packageJson = JSON.parse(await readFile('package.json')); - const pyodideVersion = packageJson.dependencies.pyodide.replace('^', ''); - - try { - const pyodidePackageJson = JSON.parse(await readFile('static/pyodide/package.json')); - const pyodidePackageVersion = pyodidePackageJson.version.replace('^', ''); - - if (pyodideVersion !== pyodidePackageVersion) { - console.log('Pyodide version mismatch, removing static/pyodide directory'); - await rmdir('static/pyodide', { recursive: true }); - } - } catch (e) { - console.log('Pyodide package not found, proceeding with download.'); - } - - try { - console.log('Loading micropip package'); - await pyodide.loadPackage('micropip'); - - const micropip = pyodide.pyimport('micropip'); - console.log('Downloading Pyodide packages:', packages); - - try { - for (const pkg of packages) { - console.log(`Installing package: ${pkg}`); - await micropip.install(pkg); - } - } catch (err) { - console.error('Package installation failed:', err); - return; - } - - console.log('Pyodide packages downloaded, freezing into lock file'); - - try { - const lockFile = await micropip.freeze(); - await writeFile('static/pyodide/pyodide-lock.json', lockFile); - } catch (err) { - console.error('Failed to write lock file:', err); - } - } catch (err) { - console.error('Failed to load or install micropip:', err); - } -} - -async function copyPyodide() { - console.log('Copying Pyodide files into static directory'); - // Copy all files from node_modules/pyodide to static/pyodide - for await (const entry of await readdir('node_modules/pyodide')) { - await copyFile(`node_modules/pyodide/${entry}`, `static/pyodide/${entry}`); - } -} - -await downloadPackages(); -await copyPyodide();