CoolFace
Apppublic

Nymbo/self-hosted-python

sourceHugging Faceupdated 4y agoView on Hugging Face
1likes
webworker_dev.js27 linesDownload Raw Back to root
1importScripts("./pyodide.js");2 3onmessage = async function (e) {4  try {5    const data = e.data;6    for (let key of Object.keys(data)) {7      if (key !== "python") {8        // Keys other than python must be arguments for the python script.9        // Set them on self, so that `from js import key` works.10        self[key] = data[key];11      }12    }13 14    if (!loadPyodide.inProgress) {15      self.pyodide = await loadPyodide({ indexURL: "./" });16    }17    await self.pyodide.loadPackagesFromImports(data.python);18    let results = await self.pyodide.runPythonAsync(data.python);19    self.postMessage({ results });20  } catch (e) {21    // if you prefer messages with the error22    self.postMessage({ error: e.message + "\n" + e.stack });23    // if you prefer onerror events24    // setTimeout(() => { throw err; });25  }26};27