diff --git a/src/lib/workers/pyodide.worker.ts b/src/lib/workers/pyodide.worker.ts index 1eb426ea3..e906e7762 100644 --- a/src/lib/workers/pyodide.worker.ts +++ b/src/lib/workers/pyodide.worker.ts @@ -40,6 +40,23 @@ async function loadPyodideAndPackages(packages: string[] = []) { packages: ['micropip'] }); + let mountDir = '/mnt'; + self.pyodide.FS.mkdirTree(mountDir); + // self.pyodide.FS.mount(self.pyodide.FS.filesystems.IDBFS, {}, mountDir); + + // // Load persisted files from IndexedDB (Initial Sync) + // await new Promise((resolve, reject) => { + // self.pyodide.FS.syncfs(true, (err) => { + // if (err) { + // console.error('Error syncing from IndexedDB:', err); + // reject(err); + // } else { + // console.log('Successfully loaded from IndexedDB.'); + // resolve(); + // } + // }); + // }); + const micropip = self.pyodide.pyimport('micropip'); // await micropip.set_index_urls('https://pypi.org/pypi/{package_name}/json'); @@ -66,6 +83,19 @@ self.onmessage = async (event) => { self.result = processResult(self.result); console.log('Python result:', self.result); + + // Persist any changes to IndexedDB + // await new Promise((resolve, reject) => { + // self.pyodide.FS.syncfs(false, (err) => { + // if (err) { + // console.error('Error syncing to IndexedDB:', err); + // reject(err); + // } else { + // console.log('Successfully synced to IndexedDB.'); + // resolve(); + // } + // }); + // }); } catch (error) { self.stderr = error.toString(); }