@pyscript/core 0.7.28 → 0.7.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/codemirror-BDx3jn9j.js +2 -0
  2. package/dist/codemirror-BDx3jn9j.js.map +1 -0
  3. package/dist/codemirror_commands-JTJPAaAA.js +2 -0
  4. package/dist/codemirror_commands-JTJPAaAA.js.map +1 -0
  5. package/dist/codemirror_lang-python-r-dBg-Wd.js +2 -0
  6. package/dist/codemirror_lang-python-r-dBg-Wd.js.map +1 -0
  7. package/dist/codemirror_language-BeYrpeur.js +2 -0
  8. package/dist/codemirror_language-BeYrpeur.js.map +1 -0
  9. package/dist/codemirror_state-DxSVIxgn.js +2 -0
  10. package/dist/codemirror_state-DxSVIxgn.js.map +1 -0
  11. package/dist/codemirror_view-BsXnWedx.js +2 -0
  12. package/dist/codemirror_view-BsXnWedx.js.map +1 -0
  13. package/dist/core-Ze80f4LS.js +4 -0
  14. package/dist/core-Ze80f4LS.js.map +1 -0
  15. package/dist/core.js +1 -1
  16. package/dist/{deprecations-manager-kmj_AGsV.js → deprecations-manager-BKMZjhaL.js} +2 -2
  17. package/dist/{deprecations-manager-kmj_AGsV.js.map → deprecations-manager-BKMZjhaL.js.map} +1 -1
  18. package/dist/{donkey-CKcbaOhQ.js → donkey-C_Uxdfr8.js} +2 -2
  19. package/dist/{donkey-CKcbaOhQ.js.map → donkey-C_Uxdfr8.js.map} +1 -1
  20. package/dist/{error-DN097_kl.js → error-BQWK5Wkw.js} +2 -2
  21. package/dist/{error-DN097_kl.js.map → error-BQWK5Wkw.js.map} +1 -1
  22. package/dist/index-CSo4Vcso.js +2 -0
  23. package/dist/index-CSo4Vcso.js.map +1 -0
  24. package/dist/{mpy-CmHIC_T4.js → mpy-DXY_Z69L.js} +2 -2
  25. package/dist/mpy-DXY_Z69L.js.map +1 -0
  26. package/dist/{py-BY9OyURr.js → py-BXEV3Waf.js} +2 -2
  27. package/dist/py-BXEV3Waf.js.map +1 -0
  28. package/dist/py-editor-CJghpysI.js +2 -0
  29. package/dist/py-editor-CJghpysI.js.map +1 -0
  30. package/dist/{py-game-CDWnCqy1.js → py-game-CAcsfHPF.js} +2 -2
  31. package/dist/py-game-CAcsfHPF.js.map +1 -0
  32. package/dist/{py-terminal-DDBTLKy-.js → py-terminal-D05dSP7E.js} +2 -2
  33. package/dist/{py-terminal-DDBTLKy-.js.map → py-terminal-D05dSP7E.js.map} +1 -1
  34. package/dist/pyodide_graph-CX6fRcVL.js +2 -0
  35. package/dist/pyodide_graph-CX6fRcVL.js.map +1 -0
  36. package/dist/storage.js +1 -1
  37. package/dist/storage.js.map +1 -1
  38. package/dist/toml-Blg7Izee.js.map +1 -1
  39. package/dist/toml-V4Savzlc.js.map +1 -1
  40. package/dist/xterm-Bdboj2r8.js +2 -0
  41. package/dist/xterm-Bdboj2r8.js.map +1 -0
  42. package/dist/xterm-readline-CVifJ5yI.js +2 -0
  43. package/dist/xterm-readline-CVifJ5yI.js.map +1 -0
  44. package/dist/{xterm_addon-fit-DxKdSnof.js → xterm_addon-fit-43qXDVCl.js} +2 -14
  45. package/dist/xterm_addon-fit-43qXDVCl.js.map +1 -0
  46. package/dist/{xterm_addon-web-links-B6rWzrcs.js → xterm_addon-web-links-DVH-i-UR.js} +2 -14
  47. package/dist/xterm_addon-web-links-DVH-i-UR.js.map +1 -0
  48. package/dist/zip-T1gzVEcZ.js +2 -0
  49. package/dist/zip-T1gzVEcZ.js.map +1 -0
  50. package/package.json +21 -19
  51. package/src/3rd-party/xterm-readline.js +28 -3
  52. package/src/3rd-party/xterm.js +10 -2
  53. package/src/3rd-party/xterm_addon-fit.js +2 -14
  54. package/src/3rd-party/xterm_addon-web-links.js +2 -14
  55. package/src/fs.js +0 -2
  56. package/src/plugins/py-editor.js +17 -2
  57. package/src/plugins/py-terminal/mpy.js +1 -1
  58. package/src/plugins/py-terminal/py.js +1 -1
  59. package/dist/codemirror-lAW8P_b2.js +0 -2
  60. package/dist/codemirror-lAW8P_b2.js.map +0 -1
  61. package/dist/codemirror_commands-Og5MXTi1.js +0 -2
  62. package/dist/codemirror_commands-Og5MXTi1.js.map +0 -1
  63. package/dist/codemirror_lang-python-C__shTTP.js +0 -2
  64. package/dist/codemirror_lang-python-C__shTTP.js.map +0 -1
  65. package/dist/codemirror_language-BRdaMe3x.js +0 -2
  66. package/dist/codemirror_language-BRdaMe3x.js.map +0 -1
  67. package/dist/codemirror_state-BNbbkoNK.js +0 -2
  68. package/dist/codemirror_state-BNbbkoNK.js.map +0 -1
  69. package/dist/codemirror_view-WuoIJFLW.js +0 -2
  70. package/dist/codemirror_view-WuoIJFLW.js.map +0 -1
  71. package/dist/core-of365ts-.js +0 -4
  72. package/dist/core-of365ts-.js.map +0 -1
  73. package/dist/index-DqzYjG-t.js +0 -2
  74. package/dist/index-DqzYjG-t.js.map +0 -1
  75. package/dist/mpy-CmHIC_T4.js.map +0 -1
  76. package/dist/py-BY9OyURr.js.map +0 -1
  77. package/dist/py-editor-md0FEZ4Z.js +0 -2
  78. package/dist/py-editor-md0FEZ4Z.js.map +0 -1
  79. package/dist/py-game-CDWnCqy1.js.map +0 -1
  80. package/dist/pyodide_graph-BvONa7d5.js +0 -2
  81. package/dist/pyodide_graph-BvONa7d5.js.map +0 -1
  82. package/dist/xterm-DrSYbXEP.js +0 -2
  83. package/dist/xterm-DrSYbXEP.js.map +0 -1
  84. package/dist/xterm-readline-C4_t4zrr.js +0 -2
  85. package/dist/xterm-readline-C4_t4zrr.js.map +0 -1
  86. package/dist/xterm_addon-fit-DxKdSnof.js.map +0 -1
  87. package/dist/xterm_addon-web-links-B6rWzrcs.js.map +0 -1
  88. package/dist/zip-CoY8ac0B.js +0 -2
  89. package/dist/zip-CoY8ac0B.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{e,w as t,i as r,d as n}from"./core-of365ts-.js";const i=new WeakSet,o=({interpreter:e,io:t,run:r,type:n},{sync:i})=>{if("mpy"!==n||!i.is_pyterminal())return;const{pyterminal_ready:o,pyterminal_read:a,pyterminal_write:s}=i;e.registerJsModule("_pyscript_input",{input:a}),r(["from _pyscript_input import input","from polyscript import currentScript as _","__terminal__ = _.terminal","del _"].join(";"));const l=new Uint8Array([13]);t.stdout=e=>{10===e[0]&&s(l),s(e)},t.stderr=e=>{s(String(e.message||e))},i.pyterminal_stream_write=()=>{},e.registerJsModule("code",{interact(){const t=new TextEncoderStream;t.readable.pipeTo(new WritableStream({write(t){for(const r of t)e.replProcessChar(r)}}));const r=t.writable.getWriter();i.pyterminal_stream_write=e=>r.write(e),e.replInit()}}),o()};var a=async a=>{const[{Terminal:s},{FitAddon:l},{WebLinksAddon:m}]=await Promise.all([import("./xterm-DrSYbXEP.js"),import("./xterm_addon-fit-DxKdSnof.js"),import("./xterm_addon-web-links-B6rWzrcs.js")]),d={disableStdin:!1,cursorBlink:!0,cursorStyle:"block",lineHeight:1.2};let p;const c=()=>{let e=a;const t=a.getAttribute("target");if(t){if(e=document.getElementById(t)||document.querySelector(t),!e)throw new Error(`Unknown target ${t}`)}else e=document.createElement("py-terminal"),e.style.display="block",a.after(e);const r=new s({theme:{background:"#191A19",foreground:"#F5F2E7"},...d}),i=new l;return r.loadAddon(i),r.loadAddon(new m),r.open(e),i.fit(),r.focus(),n(a,{terminal:{value:r},process:{value:async e=>{for(const t of e.split(/(?:\r\n|\r|\n)/))await p.write(`${t}\r`)}}}),r};a.hasAttribute("worker")?(e.main.onWorker.add(function r(n,o){if(i.has(o))return;i.add(o),e.main.onWorker.delete(r);const a=c(),{sync:s}=o;let l=null,m="";s.is_pyterminal=()=>!0,s.pyterminal_read=e=>(a.write(e),l=t(),l.promise),s.pyterminal_write=e=>{l||a.write(e)},s.pyterminal_ready=()=>{let e=Promise.resolve();p={write:t=>e=e.then(()=>s.pyterminal_stream_write(t))},a.onData(e=>{l?(""===e?m.length?(m=m.slice(0,-1),e="\b \b"):e="":m+=e,e&&(a.write(e),m.endsWith("\r")&&(a.write("\n"),l.resolve(m.slice(0,-1)),l=null,m=""))):p.write(e)})}}),e.worker.onReady.add(o)):(e.main.codeBeforeRun.delete(r),e.main.onReady.add(function t({interpreter:r,io:n,run:i,type:o}){if("mpy"!==o)return;e.main.onReady.delete(t);const a=c(),s=new Uint8Array([13]);n.stdout=e=>{10===e[0]&&a.write(s),a.write(e)},globalThis.__py_terminal__=a,i(["from js import prompt as input","from js import __py_terminal__ as __terminal__"].join(";")),delete globalThis.__py_terminal__,r.registerJsModule("code",{interact(){const e=new TextEncoderStream;e.readable.pipeTo(new WritableStream({write(e){for(const t of e)r.replProcessChar(t)}})),p=e.writable.getWriter(),a.onData(e=>p.write(e)),r.replInit()}})}))};export{a as default};
2
- //# sourceMappingURL=mpy-CmHIC_T4.js.map
1
+ import{e,w as t,i as r,d as n}from"./core-Ze80f4LS.js";const i=new WeakSet,o=({interpreter:e,io:t,run:r,type:n},{sync:i})=>{if("mpy"!==n||!i.is_pyterminal())return;const{pyterminal_ready:o,pyterminal_read:a,pyterminal_write:s}=i;e.registerJsModule("_pyscript_input",{input:a}),r(["from _pyscript_input import input","from polyscript import currentScript as _","__terminal__ = _.terminal","del _"].join(";"));const l=new Uint8Array([13]);t.stdout=e=>{10===e[0]&&s(l),s(e)},t.stderr=e=>{s(String(e.message||e))},i.pyterminal_stream_write=()=>{},e.registerJsModule("code",{interact(){const t=new TextEncoderStream;t.readable.pipeTo(new WritableStream({write(t){for(const r of t)e.replProcessChar(r)}}));const r=t.writable.getWriter();i.pyterminal_stream_write=e=>r.write(e),e.replInit()}}),o()};var a=async a=>{const[{Terminal:s},{FitAddon:l},{WebLinksAddon:m}]=await Promise.all([import("./xterm-Bdboj2r8.js"),import("./xterm_addon-fit-43qXDVCl.js"),import("./xterm_addon-web-links-DVH-i-UR.js")]),d={disableStdin:!1,cursorBlink:!0,cursorStyle:"block",lineHeight:1.2};let p;const c=()=>{let e=a;const t=e.getAttribute("target");if(t){if(e=document.getElementById(t)||document.querySelector(t),!e)throw new Error(`Unknown target ${t}`)}else e=document.createElement("py-terminal"),e.style.display="block",a.after(e);const r=new s({theme:{background:"#191A19",foreground:"#F5F2E7"},...d}),i=new l;return r.loadAddon(i),r.loadAddon(new m),r.open(e),i.fit(),r.focus(),n(a,{terminal:{value:r},process:{value:async e=>{for(const t of e.split(/(?:\r\n|\r|\n)/))await p.write(`${t}\r`)}}}),r};a.hasAttribute("worker")?(e.main.onWorker.add(function r(n,o){if(i.has(o))return;i.add(o),e.main.onWorker.delete(r);const a=c(),{sync:s}=o;let l=null,m="";s.is_pyterminal=()=>!0,s.pyterminal_read=e=>(a.write(e),l=t(),l.promise),s.pyterminal_write=e=>{l||a.write(e)},s.pyterminal_ready=()=>{let e=Promise.resolve();p={write:t=>e=e.then(()=>s.pyterminal_stream_write(t))},a.onData(e=>{l?(""===e?m.length?(m=m.slice(0,-1),e="\b \b"):e="":m+=e,e&&(a.write(e),m.endsWith("\r")&&(a.write("\n"),l.resolve(m.slice(0,-1)),l=null,m=""))):p.write(e)})}}),e.worker.onReady.add(o)):(e.main.codeBeforeRun.delete(r),e.main.onReady.add(function t({interpreter:r,io:n,run:i,type:o}){if("mpy"!==o)return;e.main.onReady.delete(t);const a=c(),s=new Uint8Array([13]);n.stdout=e=>{10===e[0]&&a.write(s),a.write(e)},globalThis.__py_terminal__=a,i(["from js import prompt as input","from js import __py_terminal__ as __terminal__"].join(";")),delete globalThis.__py_terminal__,r.registerJsModule("code",{interact(){const e=new TextEncoderStream;e.readable.pipeTo(new WritableStream({write(e){for(const t of e)r.replProcessChar(t)}})),p=e.writable.getWriter(),a.onData(e=>p.write(e)),r.replInit()}})}))};export{a as default};
2
+ //# sourceMappingURL=mpy-DXY_Z69L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpy-DXY_Z69L.js","sources":["../src/plugins/py-terminal/mpy.js"],"sourcesContent":["// PyScript pyodide terminal plugin\nimport withResolvers from \"@webreflection/utils/with-resolvers\";\nimport { defineProperties } from \"polyscript/exports\";\nimport { hooks, inputFailure } from \"../../core.js\";\n\nconst bootstrapped = new WeakSet();\n\n// this callback will be serialized as string and it never needs\n// to be invoked multiple times. Each xworker here is bootstrapped\n// only once thanks to the `sync.is_pyterminal()` check.\nconst workerReady = ({ interpreter, io, run, type }, { sync }) => {\n if (type !== \"mpy\" || !sync.is_pyterminal()) return;\n\n const { pyterminal_ready, pyterminal_read, pyterminal_write } = sync;\n\n interpreter.registerJsModule(\"_pyscript_input\", {\n input: pyterminal_read,\n });\n\n run(\n [\n \"from _pyscript_input import input\",\n \"from polyscript import currentScript as _\",\n \"__terminal__ = _.terminal\",\n \"del _\",\n ].join(\";\"),\n );\n\n const missingReturn = new Uint8Array([13]);\n io.stdout = (buffer) => {\n if (buffer[0] === 10) pyterminal_write(missingReturn);\n pyterminal_write(buffer);\n };\n io.stderr = (error) => {\n pyterminal_write(String(error.message || error));\n };\n\n sync.pyterminal_stream_write = () => {};\n\n // tiny shim of the code module with only interact\n // to bootstrap a REPL like environment\n interpreter.registerJsModule(\"code\", {\n interact() {\n const encoder = new TextEncoderStream();\n encoder.readable.pipeTo(\n new WritableStream({\n write(buffer) {\n for (const c of buffer) interpreter.replProcessChar(c);\n },\n }),\n );\n\n const writer = encoder.writable.getWriter();\n sync.pyterminal_stream_write = (buffer) => writer.write(buffer);\n\n interpreter.replInit();\n },\n });\n\n pyterminal_ready();\n};\n\nexport default async (element) => {\n // lazy load these only when a valid terminal is found\n const [{ Terminal }, { FitAddon }, { WebLinksAddon }] = await Promise.all([\n import(/* webpackIgnore: true */ \"../../3rd-party/xterm.js\"),\n import(/* webpackIgnore: true */ \"../../3rd-party/xterm_addon-fit.js\"),\n import(\n /* webpackIgnore: true */ \"../../3rd-party/xterm_addon-web-links.js\"\n ),\n ]);\n\n const terminalOptions = {\n disableStdin: false,\n cursorBlink: true,\n cursorStyle: \"block\",\n lineHeight: 1.2,\n };\n\n let stream;\n\n // common main thread initialization for both worker\n // or main case, bootstrapping the terminal on its target\n const init = () => {\n let target = element;\n const selector = target.getAttribute(\"target\");\n if (selector) {\n target =\n document.getElementById(selector) ||\n document.querySelector(selector);\n if (!target) throw new Error(`Unknown target ${selector}`);\n } else {\n target = document.createElement(\"py-terminal\");\n target.style.display = \"block\";\n element.after(target);\n }\n const terminal = new Terminal({\n theme: {\n background: \"#191A19\",\n foreground: \"#F5F2E7\",\n },\n ...terminalOptions,\n });\n const fitAddon = new FitAddon();\n terminal.loadAddon(fitAddon);\n terminal.loadAddon(new WebLinksAddon());\n terminal.open(target);\n fitAddon.fit();\n terminal.focus();\n defineProperties(element, {\n terminal: { value: terminal },\n process: {\n value: async (code) => {\n for (const line of code.split(/(?:\\r\\n|\\r|\\n)/)) {\n await stream.write(`${line}\\r`);\n }\n },\n },\n });\n return terminal;\n };\n\n // branch logic for the worker\n if (element.hasAttribute(\"worker\")) {\n // add a hook on the main thread to setup all sync helpers\n // also bootstrapping the XTerm target on main *BUT* ...\n hooks.main.onWorker.add(function worker(_, xworker) {\n // ... as multiple workers will add multiple callbacks\n // be sure no xworker is ever initialized twice!\n if (bootstrapped.has(xworker)) return;\n bootstrapped.add(xworker);\n\n // still cleanup this callback for future scripts/workers\n hooks.main.onWorker.delete(worker);\n\n const terminal = init();\n\n const { sync } = xworker;\n\n // handle the read mode on input\n let promisedChunks = null;\n let readChunks = \"\";\n\n sync.is_pyterminal = () => true;\n\n // put the terminal in a read-only state\n // frees the worker on \\r\n sync.pyterminal_read = (buffer) => {\n terminal.write(buffer);\n promisedChunks = withResolvers();\n return promisedChunks.promise;\n };\n\n // write if not reading input\n sync.pyterminal_write = (buffer) => {\n if (!promisedChunks) terminal.write(buffer);\n };\n\n // add the onData terminal listener which forwards to the worker\n // everything typed in a queued char-by-char way\n sync.pyterminal_ready = () => {\n let queue = Promise.resolve();\n stream = {\n write: (buffer) =>\n (queue = queue.then(() =>\n sync.pyterminal_stream_write(buffer),\n )),\n };\n terminal.onData((buffer) => {\n if (promisedChunks) {\n // handle backspace on input\n if (buffer === \"\\x7f\") {\n // avoid over-greedy backspace\n if (readChunks.length) {\n readChunks = readChunks.slice(0, -1);\n // override previous char position\n // put an empty space to clear the char\n // move back position again\n buffer = \"\\b \\b\";\n } else buffer = \"\";\n } else readChunks += buffer;\n if (buffer) {\n terminal.write(buffer);\n if (readChunks.endsWith(\"\\r\")) {\n terminal.write(\"\\n\");\n promisedChunks.resolve(readChunks.slice(0, -1));\n promisedChunks = null;\n readChunks = \"\";\n }\n }\n } else {\n stream.write(buffer);\n }\n });\n };\n });\n\n // setup remote thread JS/Python code for whenever the\n // worker is ready to become a terminal\n hooks.worker.onReady.add(workerReady);\n } else {\n // ⚠️ In an ideal world the inputFailure should never be used on main.\n // However, Pyodide still can't compete with MicroPython REPL mode\n // so while it's OK to keep that entry on main as default, we need\n // to remove it ASAP from `mpy` use cases, otherwise MicroPython would\n // also throw whenever an `input(...)` is required / digited.\n hooks.main.codeBeforeRun.delete(inputFailure);\n\n // in the main case, just bootstrap XTerm without\n // allowing any input as that's not possible / awkward\n hooks.main.onReady.add(function main({ interpreter, io, run, type }) {\n if (type !== \"mpy\") return;\n\n hooks.main.onReady.delete(main);\n\n const terminal = init();\n\n const missingReturn = new Uint8Array([13]);\n io.stdout = (buffer) => {\n if (buffer[0] === 10) terminal.write(missingReturn);\n terminal.write(buffer);\n };\n\n // expose the __terminal__ one-off reference\n globalThis.__py_terminal__ = terminal;\n run(\n [\n \"from js import prompt as input\",\n \"from js import __py_terminal__ as __terminal__\",\n ].join(\";\"),\n );\n delete globalThis.__py_terminal__;\n\n // NOTE: this is NOT the same as the one within\n // the onWorkerReady callback!\n interpreter.registerJsModule(\"code\", {\n interact() {\n const encoder = new TextEncoderStream();\n encoder.readable.pipeTo(\n new WritableStream({\n write(buffer) {\n for (const c of buffer)\n interpreter.replProcessChar(c);\n },\n }),\n );\n\n stream = encoder.writable.getWriter();\n terminal.onData((buffer) => stream.write(buffer));\n\n interpreter.replInit();\n },\n });\n });\n }\n};\n"],"names":["bootstrapped","WeakSet","workerReady","interpreter","io","run","type","sync","is_pyterminal","pyterminal_ready","pyterminal_read","pyterminal_write","registerJsModule","input","join","missingReturn","Uint8Array","stdout","buffer","stderr","error","String","message","pyterminal_stream_write","interact","encoder","TextEncoderStream","readable","pipeTo","WritableStream","write","c","replProcessChar","writer","writable","getWriter","replInit","mpy","async","element","Terminal","FitAddon","WebLinksAddon","Promise","all","import","terminalOptions","disableStdin","cursorBlink","cursorStyle","lineHeight","stream","init","target","selector","getAttribute","document","getElementById","querySelector","Error","createElement","style","display","after","terminal","theme","background","foreground","fitAddon","loadAddon","open","fit","focus","defineProperties","value","process","code","line","split","hasAttribute","hooks","main","onWorker","add","worker","_","xworker","has","delete","promisedChunks","readChunks","withResolvers","promise","queue","resolve","then","onData","length","slice","endsWith","onReady","codeBeforeRun","inputFailure","globalThis","__py_terminal__"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{e,d as t}from"./core-of365ts-.js";const r=new WeakSet,n=({interpreter:e,io:t,run:r,type:n},{sync:i})=>{if("py"!==n||!i.is_pyterminal())return;r(["from polyscript import currentScript as _","__terminal__ = _.terminal","del _"].join(";"));let o="";const{pyterminal_read:a,pyterminal_write:d}=i,s=new TextDecoder,l={isatty:!1,write:e=>(o=s.decode(e),d(o),e.length)};t.stderr=e=>{d(String(e.message||e))},e.setStdout(l),e.setStderr(l),e.setStdin({isatty:!1,stdin:()=>a(o)})};var i=async i=>{const[{Terminal:o},{Readline:a},{FitAddon:d},{WebLinksAddon:s}]=await Promise.all([import("./xterm-DrSYbXEP.js"),import("./xterm-readline-C4_t4zrr.js"),import("./xterm_addon-fit-DxKdSnof.js"),import("./xterm_addon-web-links-B6rWzrcs.js")]),l=new a,m=e=>{let r=i;const n=i.getAttribute("target");if(n){if(r=document.getElementById(n)||document.querySelector(n),!r)throw new Error(`Unknown target ${n}`)}else r=document.createElement("py-terminal"),r.style.display="block",i.after(r);const a=new o({theme:{background:"#191A19",foreground:"#F5F2E7"},...e}),m=new d;return a.loadAddon(m),a.loadAddon(l),a.loadAddon(new s),a.open(r),m.fit(),a.focus(),t(i,{terminal:{value:a},process:{value:async e=>{for(const t of e.split(/(?:\r\n|\r|\n)/)){a.paste(`${t}`),a.write("\r\n");do{await new Promise(e=>setTimeout(e,0))}while(!l.activeRead?.resolve);l.activeRead.resolve(t)}}}}),a};if(i.hasAttribute("worker")){e.main.onWorker.add(function t(n,i){r.has(i)||(r.add(i),e.main.onWorker.delete(t),m({disableStdin:!1,cursorBlink:!0,cursorStyle:"block",lineHeight:1.2}),i.sync.is_pyterminal=()=>!0,i.sync.pyterminal_read=l.read.bind(l),i.sync.pyterminal_write=l.write.bind(l))}),e.worker.onReady.add(n);const t=["import builtins as _b","from pyscript import sync as _s","_b.input = _s.pyterminal_read","del _b","del _s"].join("\n");e.worker.codeBeforeRun.add(t),e.worker.codeBeforeRunAsync.add(t)}else e.main.onReady.add(function t({interpreter:r,io:n,run:i,type:o}){if("py"!==o)return;console.warn("py-terminal is read only on main thread"),e.main.onReady.delete(t),globalThis.__py_terminal__=m({disableStdin:!0,cursorBlink:!1,cursorStyle:"underline"}),i("from js import __py_terminal__ as __terminal__"),delete globalThis.__py_terminal__,n.stderr=e=>{l.write(String(e.message||e))};let a="";const d=new TextDecoder,s={isatty:!1,write:e=>(a=d.decode(e),l.write(a),e.length)};r.setStdout(s),r.setStderr(s),r.setStdin({isatty:!1,stdin:()=>l.read(a)})})};export{i as default};
2
- //# sourceMappingURL=py-BY9OyURr.js.map
1
+ import{e,d as t}from"./core-Ze80f4LS.js";const r=new WeakSet,n=({interpreter:e,io:t,run:r,type:n},{sync:i})=>{if("py"!==n||!i.is_pyterminal())return;r(["from polyscript import currentScript as _","__terminal__ = _.terminal","del _"].join(";"));let o="";const{pyterminal_read:a,pyterminal_write:d}=i,s=new TextDecoder,l={isatty:!1,write:e=>(o=s.decode(e),d(o),e.length)};t.stderr=e=>{d(String(e.message||e))},e.setStdout(l),e.setStderr(l),e.setStdin({isatty:!1,stdin:()=>a(o)})};var i=async i=>{const[{Terminal:o},{Readline:a},{FitAddon:d},{WebLinksAddon:s}]=await Promise.all([import("./xterm-Bdboj2r8.js"),import("./xterm-readline-CVifJ5yI.js"),import("./xterm_addon-fit-43qXDVCl.js"),import("./xterm_addon-web-links-DVH-i-UR.js")]),l=new a,m=e=>{let r=i;const n=r.getAttribute("target");if(n){if(r=document.getElementById(n)||document.querySelector(n),!r)throw new Error(`Unknown target ${n}`)}else r=document.createElement("py-terminal"),r.style.display="block",i.after(r);const a=new o({theme:{background:"#191A19",foreground:"#F5F2E7"},...e}),m=new d;return a.loadAddon(m),a.loadAddon(l),a.loadAddon(new s),a.open(r),m.fit(),a.focus(),t(i,{terminal:{value:a},process:{value:async e=>{for(const t of e.split(/(?:\r\n|\r|\n)/)){a.paste(`${t}`),a.write("\r\n");do{await new Promise(e=>setTimeout(e,0))}while(!l.activeRead?.resolve);l.activeRead.resolve(t)}}}}),a};if(i.hasAttribute("worker")){e.main.onWorker.add(function t(n,i){r.has(i)||(r.add(i),e.main.onWorker.delete(t),m({disableStdin:!1,cursorBlink:!0,cursorStyle:"block",lineHeight:1.2}),i.sync.is_pyterminal=()=>!0,i.sync.pyterminal_read=l.read.bind(l),i.sync.pyterminal_write=l.write.bind(l))}),e.worker.onReady.add(n);const t=["import builtins as _b","from pyscript import sync as _s","_b.input = _s.pyterminal_read","del _b","del _s"].join("\n");e.worker.codeBeforeRun.add(t),e.worker.codeBeforeRunAsync.add(t)}else e.main.onReady.add(function t({interpreter:r,io:n,run:i,type:o}){if("py"!==o)return;console.warn("py-terminal is read only on main thread"),e.main.onReady.delete(t),globalThis.__py_terminal__=m({disableStdin:!0,cursorBlink:!1,cursorStyle:"underline"}),i("from js import __py_terminal__ as __terminal__"),delete globalThis.__py_terminal__,n.stderr=e=>{l.write(String(e.message||e))};let a="";const d=new TextDecoder,s={isatty:!1,write:e=>(a=d.decode(e),l.write(a),e.length)};r.setStdout(s),r.setStderr(s),r.setStdin({isatty:!1,stdin:()=>l.read(a)})})};export{i as default};
2
+ //# sourceMappingURL=py-BXEV3Waf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"py-BXEV3Waf.js","sources":["../src/plugins/py-terminal/py.js"],"sourcesContent":["// PyScript py-terminal plugin\nimport { defineProperties } from \"polyscript/exports\";\nimport { hooks } from \"../../core.js\";\n\nconst bootstrapped = new WeakSet();\n\n// this callback will be serialized as string and it never needs\n// to be invoked multiple times. Each xworker here is bootstrapped\n// only once thanks to the `sync.is_pyterminal()` check.\nconst workerReady = ({ interpreter, io, run, type }, { sync }) => {\n if (type !== \"py\" || !sync.is_pyterminal()) return;\n\n run(\n [\n \"from polyscript import currentScript as _\",\n \"__terminal__ = _.terminal\",\n \"del _\",\n ].join(\";\"),\n );\n\n let data = \"\";\n const { pyterminal_read, pyterminal_write } = sync;\n const decoder = new TextDecoder();\n const generic = {\n isatty: false,\n write(buffer) {\n data = decoder.decode(buffer);\n pyterminal_write(data);\n return buffer.length;\n },\n };\n\n io.stderr = (error) => {\n pyterminal_write(String(error.message || error));\n };\n\n interpreter.setStdout(generic);\n interpreter.setStderr(generic);\n interpreter.setStdin({\n isatty: false,\n stdin: () => pyterminal_read(data),\n });\n};\n\nexport default async (element) => {\n // lazy load these only when a valid terminal is found\n const [{ Terminal }, { Readline }, { FitAddon }, { WebLinksAddon }] =\n await Promise.all([\n import(/* webpackIgnore: true */ \"../../3rd-party/xterm.js\"),\n import(\n /* webpackIgnore: true */ \"../../3rd-party/xterm-readline.js\"\n ),\n import(\n /* webpackIgnore: true */ \"../../3rd-party/xterm_addon-fit.js\"\n ),\n import(\n /* webpackIgnore: true */ \"../../3rd-party/xterm_addon-web-links.js\"\n ),\n ]);\n\n const readline = new Readline();\n\n // common main thread initialization for both worker\n // or main case, bootstrapping the terminal on its target\n const init = (options) => {\n let target = element;\n const selector = target.getAttribute(\"target\");\n if (selector) {\n target =\n document.getElementById(selector) ||\n document.querySelector(selector);\n if (!target) throw new Error(`Unknown target ${selector}`);\n } else {\n target = document.createElement(\"py-terminal\");\n target.style.display = \"block\";\n element.after(target);\n }\n const terminal = new Terminal({\n theme: {\n background: \"#191A19\",\n foreground: \"#F5F2E7\",\n },\n ...options,\n });\n const fitAddon = new FitAddon();\n terminal.loadAddon(fitAddon);\n terminal.loadAddon(readline);\n terminal.loadAddon(new WebLinksAddon());\n terminal.open(target);\n fitAddon.fit();\n terminal.focus();\n defineProperties(element, {\n terminal: { value: terminal },\n process: {\n value: async (code) => {\n for (const line of code.split(/(?:\\r\\n|\\r|\\n)/)) {\n terminal.paste(`${line}`);\n terminal.write(\"\\r\\n\");\n do {\n await new Promise((resolve) =>\n setTimeout(resolve, 0),\n );\n } while (!readline.activeRead?.resolve);\n readline.activeRead.resolve(line);\n }\n },\n },\n });\n return terminal;\n };\n\n // branch logic for the worker\n if (element.hasAttribute(\"worker\")) {\n // add a hook on the main thread to setup all sync helpers\n // also bootstrapping the XTerm target on main *BUT* ...\n hooks.main.onWorker.add(function worker(_, xworker) {\n // ... as multiple workers will add multiple callbacks\n // be sure no xworker is ever initialized twice!\n if (bootstrapped.has(xworker)) return;\n bootstrapped.add(xworker);\n\n // still cleanup this callback for future scripts/workers\n hooks.main.onWorker.delete(worker);\n\n init({\n disableStdin: false,\n cursorBlink: true,\n cursorStyle: \"block\",\n lineHeight: 1.2,\n });\n\n xworker.sync.is_pyterminal = () => true;\n xworker.sync.pyterminal_read = readline.read.bind(readline);\n xworker.sync.pyterminal_write = readline.write.bind(readline);\n });\n\n // setup remote thread JS/Python code for whenever the\n // worker is ready to become a terminal\n hooks.worker.onReady.add(workerReady);\n\n // @see https://github.com/pyscript/pyscript/issues/2246\n const patchInput = [\n \"import builtins as _b\",\n \"from pyscript import sync as _s\",\n \"_b.input = _s.pyterminal_read\",\n \"del _b\",\n \"del _s\",\n ].join(\"\\n\");\n\n hooks.worker.codeBeforeRun.add(patchInput);\n hooks.worker.codeBeforeRunAsync.add(patchInput);\n } else {\n // in the main case, just bootstrap XTerm without\n // allowing any input as that's not possible / awkward\n hooks.main.onReady.add(function main({ interpreter, io, run, type }) {\n if (type !== \"py\") return;\n\n console.warn(\"py-terminal is read only on main thread\");\n hooks.main.onReady.delete(main);\n\n // on main, it's easy to trash and clean the current terminal\n globalThis.__py_terminal__ = init({\n disableStdin: true,\n cursorBlink: false,\n cursorStyle: \"underline\",\n });\n run(\"from js import __py_terminal__ as __terminal__\");\n delete globalThis.__py_terminal__;\n\n io.stderr = (error) => {\n readline.write(String(error.message || error));\n };\n\n let data = \"\";\n const decoder = new TextDecoder();\n const generic = {\n isatty: false,\n write(buffer) {\n data = decoder.decode(buffer);\n readline.write(data);\n return buffer.length;\n },\n };\n interpreter.setStdout(generic);\n interpreter.setStderr(generic);\n interpreter.setStdin({\n isatty: false,\n stdin: () => readline.read(data),\n });\n });\n }\n};\n"],"names":["bootstrapped","WeakSet","workerReady","interpreter","io","run","type","sync","is_pyterminal","join","data","pyterminal_read","pyterminal_write","decoder","TextDecoder","generic","isatty","write","buffer","decode","length","stderr","error","String","message","setStdout","setStderr","setStdin","stdin","py","async","element","Terminal","Readline","FitAddon","WebLinksAddon","Promise","all","import","readline","init","options","target","selector","getAttribute","document","getElementById","querySelector","Error","createElement","style","display","after","terminal","theme","background","foreground","fitAddon","loadAddon","open","fit","focus","defineProperties","value","process","code","line","split","paste","resolve","setTimeout","activeRead","hasAttribute","hooks","main","onWorker","add","worker","_","xworker","has","delete","disableStdin","cursorBlink","cursorStyle","lineHeight","read","bind","onReady","patchInput","codeBeforeRun","codeBeforeRunAsync","console","warn","globalThis","__py_terminal__"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{T as e,c as t,X as n,d as r,a as o,r as s,o as i,H as a,s as c,w as l}from"./core-Ze80f4LS.js";import{notify as u}from"./error-BQWK5Wkw.js";let d='<svg style="height:24px;width:24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19,12a1,1,0,0,1-.55.89l-10,5A1,1,0,0,1,8,18a1,1,0,0,1-.53-.15A1,1,0,0,1,7,17V7a1,1,0,0,1,1.45-.89l10,5A1,1,0,0,1,19,12Z" fill="#464646"/></svg>',p='<svg style="height:24px;width:24px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 7h10v10H7z" style="fill:#464646;stroke:#464646;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal"/></svg>',f=0;const h=e=>`${e}-editor-${f++}`,g=new Map,v=new Map,m=new WeakMap,b={worker:{codeBeforeRun:()=>c,onReady:({runAsync:e,io:t},{sync:n})=>{t.stdout=t.buffered(n.write),t.stderr=t.buffered(n.writeErr),n.revoke(),n.runAsync=e}}},y=(e,t)=>{if("boolean"==typeof t)throw`Invalid source: ${e}`;return t},w=(e,t)=>{const n=e.closest(`.${t}-editor-box`);return n?.parentNode?.previousElementSibling};async function E({currentTarget:t,script:o},c=""){const{env:f,pySrc:h,outDiv:v}=this,m=!!t;if(m&&(t.classList.add("running"),t.innerHTML=p,v.innerHTML=""),!g.has(f)){const c=URL.createObjectURL(new Blob([""])),d={type:this.interpreter,serviceWorker:this.serviceWorker},{config:p}=this;if(p)try{if(d.configURL=s(p),p.endsWith(".toml")){const[{parse:e},t]=await Promise.all([import("./toml-Blg7Izee.js"),fetch(p).then(e=>e.ok&&e.text())]);d.config=e(y(p,t))}else if(p.endsWith(".json")){const e=await fetch(p).then(e=>e.ok&&e.json());d.config=y(p,e)}else d.configURL=s("./config.txt"),d.config=JSON.parse(p);d.version=i(d.config)}catch(e){return void u(e)}else d.config={};const h=n.call(new a(null,b),c,d);if(m)for(const n of e.keys())if(o=w(t,n))break;r(o,{xworker:{value:h}});const{sync:v}=h,{promise:E,resolve:k}=l();g.set(f,E),v.revoke=()=>{URL.revokeObjectURL(c),k(h)}}return g.get(f).then(e=>{e.onerror=({error:e})=>{m&&v.insertAdjacentHTML("beforeend",`<span style='color:red'>${e.message||e}</span>\n`),console.error(e)};const n=()=>{if(m){t.classList.remove("running"),t.innerHTML=d;const{previousElementSibling:e}=t.closest("[data-env]").parentElement;e?.dispatchEvent(new Event("py-editor:done",{bubbles:!0,cancelable:!0}))}},{sync:r}=e;r.write=e=>{m?v.innerText+=`${e}\n`:console.log(e)},r.writeErr=e=>{m?v.insertAdjacentHTML("beforeend",`<span style='color:red'>${e}</span>\n`):(u(e),console.error(e))},c&&(c+=";"),r.runAsync(c+h).then(n,n)})}const k=(e,t)=>{e.xworker?.terminate();const n=e.cloneNode(!0);n.type=`${t}-editor`;const r=m.get(e);if(r){const t=r.state.doc.toString();n.textContent=t,m.delete(e);const o=e.getAttribute("output"),{nextElementSibling:s}=e;o?s.replaceWith(document.getElementById(o)):s.remove()}e.replaceWith(n)},$=(t,n)=>{const r=document.createElement("div");r.className=`${n}-editor-input`,r.setAttribute("aria-label","Python Script Area");const o=((t,n)=>{const r=document.createElement("button");return r.className=`absolute ${n}-editor-run-button`,r.innerHTML=d,r.setAttribute("aria-label","Python Script Run Button"),r.addEventListener("click",async o=>{const s=w(r,n);if(r.classList.contains("running")&&confirm("Stop evaluating this code?")){if(s){const t=s.getAttribute("env");if(t)for(const[r,o]of e)if(r===n){v.delete(`${o}-${t}`),g.delete(`${o}-${t}`);break}if(s.xworker)k(s,n);else{const e=`script[type^="${n}-editor"][env="${t}"]`;for(const t of document.querySelectorAll(e))k(t,n)}}}else r.blur(),await t.handleEvent(o,s?.getAttribute("onbeforerun")||"")}),r})(t,n),s=document.createElement("div");return s.addEventListener("keydown",e=>{e.stopPropagation()}),r.append(o,s),r},x=(e,t,n)=>{const r=document.createElement("div");r.className=`${t}-editor-box`;const o=$(e,t),s=n?document.getElementById(n):(e=>{const t=document.createElement("div");return t.className=`${e}-editor-output`,t.id=`${h(e)}-output`,t})(t);return n&&s.classList.add(`${t}-editor-output`),r.append(o,s),[r,s,o.querySelector("button")]},A=async(e,s,i)=>{const[{basicSetup:a,EditorView:c},{Compartment:l},{python:f},{indentUnit:b},{keymap:w},{defaultKeymap:k,indentWithTab:$}]=await Promise.all([t.core,t.state,t.python,t.language,t.view,t.commands]);let A=e.hasAttribute("setup");const S=e.hasAttribute("config"),L=e.getAttribute("service-worker"),M=`${i}-${e.getAttribute("env")||h(s)}`,{dataset:T}=e;if(T.run&&(d=T.run),T.stop&&(p=T.stop),L&&(new n("data:application/javascript,postMessage(0)",{type:"dummy",serviceWorker:L}).onmessage=({target:e})=>e.terminate()),S&&v.has(M)){if(!e.hasAttribute("env-override"))throw new SyntaxError(v.get(M)?`duplicated config for env: ${M}`:`unable to add a config to the env: ${M}`);g.delete(M)}v.set(M,S);let j=e.textContent;const{src:R}=e;if(R)try{j=y(R,await fetch(R).then(e=>e.ok&&e.text()))}catch(e){return void u(e)}const W={handleEvent:E,serviceWorker:L,interpreter:i,env:M,config:S&&e.getAttribute("config"),get pySrc(){return A?j:G.state.doc.toString()},get outDiv(){return A?null:N}};let C;r(e,{target:{get:()=>C},handleEvent:{get:()=>W.handleEvent,set:e=>{W.handleEvent=e===E?E:async(t,n)=>{const{currentTarget:o}=t;r(t,{code:{value:W.pySrc}}),!1!==await e(t)&&await E.call(W,{currentTarget:o},n)}}},code:{get:()=>W.pySrc,set:e=>{A||G.update([G.state.update({changes:{from:0,to:G.state.doc.length,insert:e}})])}},process:{value(e,t=!1){if(t)return z();const n=A,r=j;A=!0,j=e;const o=()=>{A=n,j=r};return W.handleEvent({currentTarget:null}).then(o,o)}}});const H=()=>{const t=new Event(`${s}-editor`,{bubbles:!0});e.dispatchEvent(t)};if(A)return void W.handleEvent({currentTarget:null,script:e}).then(H);const B=e.getAttribute("target");if(B){if(C=document.getElementById(B)||document.querySelector(B),!C)throw new Error(`Unknown target ${B}`)}else C=document.createElement(`${s}-editor`),C.style.display="block",e.after(C);C.id||(C.id=h(s)),C.hasAttribute("exec-id")||C.setAttribute("exec-id",0),C.hasAttribute("root")||C.setAttribute("root",C.id);const[U,N,P]=x(W,s,e.getAttribute("output"));U.dataset.env=e.hasAttribute("env")?M:i;const q=U.querySelector(`.${s}-editor-input > div`).attachShadow({mode:"open"}),D=[":host { all: initial; }"],I=e.getAttribute("rows");if(I){const e=Math.floor(18.5*parseInt(I))+"px",t=Math.floor(55.5)+"px";D.push(`.cm-editor { height: auto; max-height: ${e}; min-height: ${t}; }`)}q.innerHTML=`<style>${D.join("\n")}</style>`,C.appendChild(U);const O=o(e.textContent).trim(),V=/^([ \t]+)/m.test(O)?RegExp.$1:" ",z=()=>!P.click(),G=new c({extensions:[b.of(V),(new l).of(f()),w.of([{key:"Ctrl-Enter",run:z,preventDefault:!0},{key:"Cmd-Enter",run:z,preventDefault:!0},{key:"Shift-Enter",run:z,preventDefault:!0},...k,$]),a],foldGutter:!0,gutters:["CodeMirror-linenumbers","CodeMirror-foldgutter"],parent:q,doc:O});m.set(e,G),G.focus(),H()};let S=0,L=Promise.resolve();const M=()=>{S=0,T()},T=()=>{if(!S){S=setTimeout(M,250);for(const[t,n]of e){const e=`script[type="${t}-editor"]`;for(const r of document.querySelectorAll(e))r.type+="-active",L=L.then(()=>A(r,t,n))}return L}};new MutationObserver(T).observe(document,{childList:!0,subtree:!0});var j=T();export{j as default};
2
+ //# sourceMappingURL=py-editor-CJghpysI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"py-editor-CJghpysI.js","sources":["../src/plugins/py-editor.js"],"sourcesContent":["// PyScript py-editor plugin\nimport withResolvers from \"@webreflection/utils/with-resolvers\";\nimport { Hook, XWorker, dedent, defineProperties } from \"polyscript/exports\";\nimport { TYPES, offline_interpreter, relative_url, stdlib } from \"../core.js\";\nimport { notify } from \"./error.js\";\nimport codemirror from \"./codemirror.js\";\n\n// Define the run and stop buttons as SVG icons\n// These can be replaced with custom icons if desired\n// through `data-run` and `data-stop` (dataset) attributes.\nlet RUN_BUTTON = `<svg style=\"height:24px;width:24px\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M19,12a1,1,0,0,1-.55.89l-10,5A1,1,0,0,1,8,18a1,1,0,0,1-.53-.15A1,1,0,0,1,7,17V7a1,1,0,0,1,1.45-.89l10,5A1,1,0,0,1,19,12Z\" fill=\"#464646\"/></svg>`;\nlet STOP_BUTTON = `<svg style=\"height:24px;width:24px\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M7 7h10v10H7z\" style=\"fill:#464646;stroke:#464646;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;stroke-dasharray:none;paint-order:normal\"/></svg>`;\n\nlet id = 0;\nconst getID = (type) => `${type}-editor-${id++}`;\n\nconst envs = new Map();\nconst configs = new Map();\nconst editors = new WeakMap();\n\nconst hooks = {\n worker: {\n codeBeforeRun: () => stdlib,\n // works on both Pyodide and MicroPython\n onReady: ({ runAsync, io }, { sync }) => {\n io.stdout = io.buffered(sync.write);\n io.stderr = io.buffered(sync.writeErr);\n sync.revoke();\n sync.runAsync = runAsync;\n },\n },\n};\n\nconst validate = (config, result) => {\n if (typeof result === \"boolean\") throw `Invalid source: ${config}`;\n return result;\n};\n\nconst getRelatedScript = (target, type) => {\n const editor = target.closest(`.${type}-editor-box`);\n return editor?.parentNode?.previousElementSibling;\n};\n\nasync function execute({ currentTarget, script }, onBeforeRun = \"\") {\n const { env, pySrc, outDiv } = this;\n const hasRunButton = !!currentTarget;\n\n if (hasRunButton) {\n currentTarget.classList.add(\"running\");\n currentTarget.innerHTML = STOP_BUTTON;\n outDiv.innerHTML = \"\";\n }\n\n if (!envs.has(env)) {\n const srcLink = URL.createObjectURL(new Blob([\"\"]));\n const details = {\n type: this.interpreter,\n serviceWorker: this.serviceWorker,\n };\n const { config } = this;\n if (config) {\n // verify that config can be parsed and used\n try {\n details.configURL = relative_url(config);\n if (config.endsWith(\".toml\")) {\n const [{ parse }, toml] = await Promise.all([\n import(\n /* webpackIgnore: true */ \"../3rd-party/toml.js\"\n ),\n fetch(config).then((r) => r.ok && r.text()),\n ]);\n details.config = parse(validate(config, toml));\n } else if (config.endsWith(\".json\")) {\n const json = await fetch(config).then(\n (r) => r.ok && r.json(),\n );\n details.config = validate(config, json);\n } else {\n details.configURL = relative_url(\"./config.txt\");\n details.config = JSON.parse(config);\n }\n details.version = offline_interpreter(details.config);\n } catch (error) {\n notify(error);\n return;\n }\n } else {\n details.config = {};\n }\n\n const xworker = XWorker.call(new Hook(null, hooks), srcLink, details);\n\n // expose xworker like in terminal or other workers to allow\n // creation and destruction of editors on the fly\n if (hasRunButton) {\n for (const type of TYPES.keys()) {\n script = getRelatedScript(currentTarget, type);\n if (script) break;\n }\n }\n\n defineProperties(script, { xworker: { value: xworker } });\n\n const { sync } = xworker;\n const { promise, resolve } = withResolvers();\n envs.set(env, promise);\n sync.revoke = () => {\n URL.revokeObjectURL(srcLink);\n resolve(xworker);\n };\n }\n\n // wait for the env then set the target div\n // before executing the current code\n return envs.get(env).then((xworker) => {\n xworker.onerror = ({ error }) => {\n if (hasRunButton) {\n outDiv.insertAdjacentHTML(\n \"beforeend\",\n `<span style='color:red'>${\n error.message || error\n }</span>\\n`,\n );\n }\n console.error(error);\n };\n\n const enable = () => {\n if (hasRunButton) {\n currentTarget.classList.remove(\"running\");\n currentTarget.innerHTML = RUN_BUTTON;\n const { previousElementSibling } =\n currentTarget.closest(\"[data-env]\").parentElement;\n previousElementSibling?.dispatchEvent(\n new Event(\"py-editor:done\", {\n bubbles: true,\n cancelable: true,\n }),\n );\n }\n };\n const { sync } = xworker;\n sync.write = (str) => {\n if (hasRunButton) outDiv.innerText += `${str}\\n`;\n else console.log(str);\n };\n sync.writeErr = (str) => {\n if (hasRunButton) {\n outDiv.insertAdjacentHTML(\n \"beforeend\",\n `<span style='color:red'>${str}</span>\\n`,\n );\n } else {\n notify(str);\n console.error(str);\n }\n };\n if (onBeforeRun) onBeforeRun += \";\";\n sync.runAsync(onBeforeRun + pySrc).then(enable, enable);\n });\n}\n\nconst replaceScript = (script, type) => {\n script.xworker?.terminate();\n const clone = script.cloneNode(true);\n clone.type = `${type}-editor`;\n const editor = editors.get(script);\n if (editor) {\n const content = editor.state.doc.toString();\n clone.textContent = content;\n editors.delete(script);\n // avoid throwing errors if the output was secified\n const output = script.getAttribute(\"output\");\n const { nextElementSibling } = script;\n if (output) nextElementSibling.replaceWith(document.getElementById(output));\n else nextElementSibling.remove();\n }\n script.replaceWith(clone);\n};\n\nconst makeRunButton = (handler, type) => {\n const runButton = document.createElement(\"button\");\n runButton.className = `absolute ${type}-editor-run-button`;\n runButton.innerHTML = RUN_BUTTON;\n runButton.setAttribute(\"aria-label\", \"Python Script Run Button\");\n runButton.addEventListener(\"click\", async (event) => {\n const script = getRelatedScript(runButton, type);\n if (\n runButton.classList.contains(\"running\") &&\n confirm(\"Stop evaluating this code?\")\n ) {\n if (script) {\n const env = script.getAttribute(\"env\");\n // remove the bootstrapped env which could be one or shared\n if (env) {\n for (const [key, value] of TYPES) {\n if (key === type) {\n configs.delete(`${value}-${env}`);\n envs.delete(`${value}-${env}`);\n break;\n }\n }\n }\n // lonley script without setup node should be replaced\n if (script.xworker) replaceScript(script, type);\n // all scripts sharing the same env should be replaced\n else {\n const sel = `script[type^=\"${type}-editor\"][env=\"${env}\"]`;\n for (const script of document.querySelectorAll(sel))\n replaceScript(script, type);\n }\n }\n return;\n }\n runButton.blur();\n await handler.handleEvent(\n event,\n script?.getAttribute(\"onbeforerun\") || \"\",\n );\n });\n return runButton;\n};\n\nconst makeEditorDiv = (handler, type) => {\n const editorDiv = document.createElement(\"div\");\n editorDiv.className = `${type}-editor-input`;\n editorDiv.setAttribute(\"aria-label\", \"Python Script Area\");\n\n const runButton = makeRunButton(handler, type);\n const editorShadowContainer = document.createElement(\"div\");\n\n // avoid outer elements intercepting key events (reveal as example)\n editorShadowContainer.addEventListener(\"keydown\", (event) => {\n event.stopPropagation();\n });\n\n editorDiv.append(runButton, editorShadowContainer);\n\n return editorDiv;\n};\n\nconst makeOutDiv = (type) => {\n const outDiv = document.createElement(\"div\");\n outDiv.className = `${type}-editor-output`;\n outDiv.id = `${getID(type)}-output`;\n return outDiv;\n};\n\nconst makeBoxDiv = (handler, type, output) => {\n const boxDiv = document.createElement(\"div\");\n boxDiv.className = `${type}-editor-box`;\n\n const editorDiv = makeEditorDiv(handler, type);\n // allow specifying an existing output div by id\n const outDiv = output ? document.getElementById(output) : makeOutDiv(type);\n if (output) outDiv.classList.add(`${type}-editor-output`);\n boxDiv.append(editorDiv, outDiv);\n\n return [boxDiv, outDiv, editorDiv.querySelector(\"button\")];\n};\n\nconst init = async (script, type, interpreter) => {\n const [\n { basicSetup, EditorView },\n { Compartment },\n { python },\n { indentUnit },\n { keymap },\n { defaultKeymap, indentWithTab },\n ] = await Promise.all([\n codemirror.core,\n codemirror.state,\n codemirror.python,\n codemirror.language,\n codemirror.view,\n codemirror.commands,\n ]);\n\n let isSetup = script.hasAttribute(\"setup\");\n const hasConfig = script.hasAttribute(\"config\");\n const serviceWorker = script.getAttribute(\"service-worker\");\n const env = `${interpreter}-${script.getAttribute(\"env\") || getID(type)}`;\n\n // allow specifying custom run and stop buttons through dataset attributes\n const { dataset } = script;\n if (dataset.run) RUN_BUTTON = dataset.run;\n if (dataset.stop) STOP_BUTTON = dataset.stop;\n\n // helps preventing too lazy ServiceWorker initialization on button run\n if (serviceWorker) {\n new XWorker(\"data:application/javascript,postMessage(0)\", {\n type: \"dummy\",\n serviceWorker,\n }).onmessage = ({ target }) => target.terminate();\n }\n\n // allow bootstrap with same env for repeated editor creation\n // only if `env-override` is explicitly set as attribute\n if (hasConfig && configs.has(env)) {\n if (script.hasAttribute(\"env-override\")) {\n // in this case we need to bootstrap the env again\n // because otherwise each env would leak\n envs.delete(env);\n } else {\n throw new SyntaxError(\n configs.get(env)\n ? `duplicated config for env: ${env}`\n : `unable to add a config to the env: ${env}`,\n );\n }\n }\n\n configs.set(env, hasConfig);\n\n let source = script.textContent;\n\n // verify the src points to a valid file that can be parsed\n const { src } = script;\n if (src) {\n try {\n source = validate(\n src,\n await fetch(src).then((b) => b.ok && b.text()),\n );\n } catch (error) {\n notify(error);\n return;\n }\n }\n\n const context = {\n // allow the listener to be overridden at distance\n handleEvent: execute,\n serviceWorker,\n interpreter,\n env,\n config: hasConfig && script.getAttribute(\"config\"),\n get pySrc() {\n return isSetup ? source : editor.state.doc.toString();\n },\n get outDiv() {\n return isSetup ? null : outDiv;\n },\n };\n\n let target;\n defineProperties(script, {\n target: { get: () => target },\n handleEvent: {\n get: () => context.handleEvent,\n set: (callback) => {\n // do not bother with logic if it was set back as its original handler\n if (callback === execute) context.handleEvent = execute;\n // in every other case be sure that if the listener override returned\n // `false` nothing happens, otherwise keep doing what it always did\n else {\n context.handleEvent = async (event, onBeforeRun) => {\n // trap the currentTarget ASAP (if any)\n // otherwise it gets lost asynchronously\n const { currentTarget } = event;\n // augment a code snapshot before invoking the override\n defineProperties(event, {\n code: { value: context.pySrc },\n });\n // avoid executing the default handler if the override returned `false`\n if ((await callback(event)) !== false)\n await execute.call(\n context,\n { currentTarget },\n onBeforeRun,\n );\n };\n }\n },\n },\n code: {\n get: () => context.pySrc,\n set: (insert) => {\n if (isSetup) return;\n editor.update([\n editor.state.update({\n changes: {\n from: 0,\n to: editor.state.doc.length,\n insert,\n },\n }),\n ]);\n },\n },\n process: {\n /**\n * Simulate a setup node overriding the source to evaluate.\n * @param {string} code the Python code to evaluate.\n * @param {boolean} asRunButtonAction invoke the `Run` button handler.\n * @returns {Promise<...>} fulfill once code has been evaluated.\n */\n value(code, asRunButtonAction = false) {\n if (asRunButtonAction) return listener();\n const wasSetup = isSetup;\n const wasSource = source;\n isSetup = true;\n source = code;\n const restore = () => {\n isSetup = wasSetup;\n source = wasSource;\n };\n return context\n .handleEvent({ currentTarget: null })\n .then(restore, restore);\n },\n },\n });\n\n const notifyEditor = () => {\n const event = new Event(`${type}-editor`, { bubbles: true });\n script.dispatchEvent(event);\n };\n\n if (isSetup) {\n context.handleEvent({ currentTarget: null, script }).then(notifyEditor);\n return;\n }\n\n const selector = script.getAttribute(\"target\");\n\n if (selector) {\n target =\n document.getElementById(selector) ||\n document.querySelector(selector);\n if (!target) throw new Error(`Unknown target ${selector}`);\n } else {\n target = document.createElement(`${type}-editor`);\n target.style.display = \"block\";\n script.after(target);\n }\n\n if (!target.id) target.id = getID(type);\n if (!target.hasAttribute(\"exec-id\")) target.setAttribute(\"exec-id\", 0);\n if (!target.hasAttribute(\"root\")) target.setAttribute(\"root\", target.id);\n\n // @see https://github.com/JeffersGlass/mkdocs-pyscript/blob/main/mkdocs_pyscript/js/makeblocks.js\n const [boxDiv, outDiv, runButton] = makeBoxDiv(\n context,\n type,\n script.getAttribute(\"output\"),\n );\n boxDiv.dataset.env = script.hasAttribute(\"env\") ? env : interpreter;\n\n const inputChild = boxDiv.querySelector(`.${type}-editor-input > div`);\n const parent = inputChild.attachShadow({ mode: \"open\" });\n // avoid inheriting styles from the outer component\n const styles = [\":host { all: initial; }\"];\n // allows max-rows which also enables min-rows\n // the editor grows up to all code in it by default otherwise\n const rows = script.getAttribute(\"rows\");\n if (rows) {\n const maxHeight = Math.floor(parseInt(rows) * 18.5) + \"px\";\n const minHeight = Math.floor(3 * 18.5) + \"px\";\n styles.push(\n `.cm-editor { height: auto; max-height: ${maxHeight}; min-height: ${minHeight}; }`,\n );\n }\n\n // inject the styles into the shadow DOM\n parent.innerHTML = `<style>${styles.join(\"\\n\")}</style>`;\n\n target.appendChild(boxDiv);\n\n const doc = dedent(script.textContent).trim();\n\n // preserve user indentation, if any\n const indentation = /^([ \\t]+)/m.test(doc) ? RegExp.$1 : \" \";\n\n const listener = () => !runButton.click();\n const editor = new EditorView({\n extensions: [\n indentUnit.of(indentation),\n new Compartment().of(python()),\n keymap.of([\n { key: \"Ctrl-Enter\", run: listener, preventDefault: true },\n { key: \"Cmd-Enter\", run: listener, preventDefault: true },\n { key: \"Shift-Enter\", run: listener, preventDefault: true },\n // Consider removing defaultKeymap as likely redundant with basicSetup\n ...defaultKeymap,\n // @see https://codemirror.net/examples/tab/\n indentWithTab,\n ]),\n basicSetup,\n ],\n foldGutter: true,\n gutters: [\"CodeMirror-linenumbers\", \"CodeMirror-foldgutter\"],\n parent,\n doc,\n });\n\n editors.set(script, editor);\n editor.focus();\n notifyEditor();\n};\n\n// avoid too greedy MutationObserver operations at distance\nlet timeout = 0;\n\n// avoid delayed initialization\nlet queue = Promise.resolve();\n\n// reset interval value then check for new scripts\nconst resetTimeout = () => {\n timeout = 0;\n pyEditor();\n};\n\n// triggered both ASAP on the living DOM and via MutationObserver later\nconst pyEditor = () => {\n if (timeout) return;\n timeout = setTimeout(resetTimeout, 250);\n for (const [type, interpreter] of TYPES) {\n const selector = `script[type=\"${type}-editor\"]`;\n for (const script of document.querySelectorAll(selector)) {\n // avoid any further bootstrap by changing the type as active\n script.type += \"-active\";\n // don't await in here or multiple calls might happen\n // while the first script is being initialized\n queue = queue.then(() => init(script, type, interpreter));\n }\n }\n return queue;\n};\n\nnew MutationObserver(pyEditor).observe(document, {\n childList: true,\n subtree: true,\n});\n\n// try to check the current document ASAP\nexport default pyEditor();\n"],"names":["RUN_BUTTON","STOP_BUTTON","id","getID","type","envs","Map","configs","editors","WeakMap","hooks","worker","codeBeforeRun","stdlib","onReady","runAsync","io","sync","stdout","buffered","write","stderr","writeErr","revoke","validate","config","result","getRelatedScript","target","editor","closest","parentNode","previousElementSibling","async","execute","currentTarget","script","onBeforeRun","env","pySrc","outDiv","this","hasRunButton","classList","add","innerHTML","has","srcLink","URL","createObjectURL","Blob","details","interpreter","serviceWorker","configURL","relative_url","endsWith","parse","toml","Promise","all","import","fetch","then","r","ok","text","json","JSON","version","offline_interpreter","error","notify","xworker","XWorker","call","Hook","TYPES","keys","defineProperties","value","promise","resolve","withResolvers","set","revokeObjectURL","get","onerror","insertAdjacentHTML","message","console","enable","remove","parentElement","dispatchEvent","Event","bubbles","cancelable","str","innerText","log","replaceScript","terminate","clone","cloneNode","content","state","doc","toString","textContent","delete","output","getAttribute","nextElementSibling","replaceWith","document","getElementById","makeEditorDiv","handler","editorDiv","createElement","className","setAttribute","runButton","addEventListener","event","contains","confirm","key","sel","querySelectorAll","blur","handleEvent","makeRunButton","editorShadowContainer","stopPropagation","append","makeBoxDiv","boxDiv","makeOutDiv","querySelector","init","basicSetup","EditorView","Compartment","python","indentUnit","keymap","defaultKeymap","indentWithTab","codemirror","core","language","view","commands","isSetup","hasAttribute","hasConfig","dataset","run","stop","onmessage","SyntaxError","source","src","b","context","callback","code","insert","update","changes","from","to","length","process","asRunButtonAction","listener","wasSetup","wasSource","restore","notifyEditor","selector","Error","style","display","after","parent","attachShadow","mode","styles","rows","maxHeight","Math","floor","parseInt","minHeight","push","join","appendChild","dedent","trim","indentation","test","RegExp","$1","click","extensions","of","preventDefault","foldGutter","gutters","focus","timeout","queue","resetTimeout","pyEditor","setTimeout","MutationObserver","observe","childList","subtree","pyEditor_default"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{l as t,h as e,j as n,k as r,s as a,a as i,m as o,n as s}from"./core-of365ts-.js";const p=s("py-game");let c=!0;const l={main:{onReady:async(n,s)=>{c&&(c=!1,console.warn("⚠️ EXPERIMENTAL `py-game` FEATURE"));let l={};if(s.hasAttribute("config")){const a=s.getAttribute("config"),{json:i,toml:o,text:c,url:m}=await r(a);if(i)l=JSON.parse(c);else if(o){const{parse:t}=await import("./toml-Blg7Izee.js");l=t(c)}if(l.packages){await n.interpreter.loadPackage("micropip");const t=n.interpreter.pyimport("micropip");await t.install(l.packages,{keep_going:!0}),t.destroy()}await((n,...r)=>t(e.get(n),...r))("py-game",p,n.interpreter,l,m?new URL(m,location.href).href:location.href)}n.interpreter.registerJsModule("_pyscript",{PyWorker(){throw new Error("Unable to use PyWorker in py-game scripts")},js_import:(...t)=>Promise.all(t.map(t=>import(t))),get target(){return s.id}}),await n.interpreter.runPythonAsync(a),n.interpreter.runPython('\nimport builtins\ndef input(prompt=""):\n import js\n return js.prompt(prompt)\n\nbuiltins.input = input\ndel builtins\ndel input\n');let m=i(s.textContent);s.src&&(m=await fetch(s.src).then(o));const g=s.getAttribute("target")||"canvas",u=document.getElementById(g);n.interpreter.canvas.setCanvas2D(u);const y=new CustomEvent("py-game",{bubbles:!0,cancelable:!0,detail:{canvas:u,code:m,config:l,wrap:n}});s.dispatchEvent(y),y.defaultPrevented||await n.interpreter.runPythonAsync(m)}}};n("py-game",{config:{packages:["pygame-ce"]},configURL:new URL("./config.txt",location.href).href,interpreter:"pyodide",env:"py-game",hooks:l});
2
- //# sourceMappingURL=py-game-CDWnCqy1.js.map
1
+ import{l as t,h as e,j as n,k as r,s as a,a as i,m as o,n as s}from"./core-Ze80f4LS.js";const p=s("py-game");let c=!0;const l={main:{onReady:async(n,s)=>{c&&(c=!1,console.warn("⚠️ EXPERIMENTAL `py-game` FEATURE"));let l={};if(s.hasAttribute("config")){const a=s.getAttribute("config"),{json:i,toml:o,text:c,url:m}=await r(a);if(i)l=JSON.parse(c);else if(o){const{parse:t}=await import("./toml-Blg7Izee.js");l=t(c)}if(l.packages){await n.interpreter.loadPackage("micropip");const t=n.interpreter.pyimport("micropip");await t.install(l.packages,{keep_going:!0}),t.destroy()}await((n,...r)=>t(e.get(n),...r))("py-game",p,n.interpreter,l,m?new URL(m,location.href).href:location.href)}n.interpreter.registerJsModule("_pyscript",{PyWorker(){throw new Error("Unable to use PyWorker in py-game scripts")},js_import:(...t)=>Promise.all(t.map(t=>import(t))),get target(){return s.id}}),await n.interpreter.runPythonAsync(a),n.interpreter.runPython('\nimport builtins\ndef input(prompt=""):\n import js\n return js.prompt(prompt)\n\nbuiltins.input = input\ndel builtins\ndel input\n');let m=i(s.textContent);s.src&&(m=await fetch(s.src).then(o));const g=s.getAttribute("target")||"canvas",u=document.getElementById(g);n.interpreter.canvas.setCanvas2D(u);const y=new CustomEvent("py-game",{bubbles:!0,cancelable:!0,detail:{canvas:u,code:m,config:l,wrap:n}});s.dispatchEvent(y),y.defaultPrevented||await n.interpreter.runPythonAsync(m)}}};n("py-game",{config:{packages:["pygame-ce"]},configURL:new URL("./config.txt",location.href).href,interpreter:"pyodide",env:"py-game",hooks:l});
2
+ //# sourceMappingURL=py-game-CAcsfHPF.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"py-game-CAcsfHPF.js","sources":["../node_modules/polyscript/esm/exports.js","../src/plugins/py-game.js"],"sourcesContent":["// this file simply exports enough stuff to allow\n// 3rd party libraries, including PyScript, to work\nimport { buffered } from './interpreter/_io.js';\nimport { createProgress } from './interpreter/_utils.js';\nimport { loadProgress as lP } from './interpreter/_python.js';\nimport { registry } from './interpreters.js';\nimport { toml } from './3rd-party.js';\n\nconst loadProgress = (type, ...rest) => lP(registry.get(type), ...rest);\n\nexport { buffered, createProgress, loadProgress, toml };\nexport * from './index.js';\nexport * from './script-handler.js';\nexport * from './utils.js';\n","import {\n dedent,\n define,\n createProgress,\n loadProgress,\n} from \"polyscript/exports\";\n\nimport { stdlib } from \"../core.js\";\nimport { configDetails } from \"../config.js\";\nimport { getText } from \"../fetch.js\";\n\nconst progress = createProgress(\"py-game\");\n\nconst inputPatch = `\nimport builtins\ndef input(prompt=\"\"):\n import js\n return js.prompt(prompt)\n\nbuiltins.input = input\ndel builtins\ndel input\n`;\n\nlet toBeWarned = true;\n\nconst hooks = {\n main: {\n onReady: async (wrap, script) => {\n if (toBeWarned) {\n toBeWarned = false;\n console.warn(\"⚠️ EXPERIMENTAL `py-game` FEATURE\");\n }\n\n let config = {};\n if (script.hasAttribute(\"config\")) {\n const value = script.getAttribute(\"config\");\n const { json, toml, text, url } = await configDetails(value);\n if (json) config = JSON.parse(text);\n else if (toml) {\n const { parse } = await import(\n /* webpackIgnore: true */ \"../3rd-party/toml.js\"\n );\n config = parse(text);\n }\n if (config.packages) {\n await wrap.interpreter.loadPackage(\"micropip\");\n const micropip = wrap.interpreter.pyimport(\"micropip\");\n await micropip.install(config.packages, {\n keep_going: true,\n });\n micropip.destroy();\n }\n await loadProgress(\n \"py-game\",\n progress,\n wrap.interpreter,\n config,\n url ? new URL(url, location.href).href : location.href,\n );\n }\n\n wrap.interpreter.registerJsModule(\"_pyscript\", {\n PyWorker() {\n throw new Error(\n \"Unable to use PyWorker in py-game scripts\",\n );\n },\n js_import: (...urls) =>\n Promise.all(urls.map((url) => import(url))),\n get target() {\n return script.id;\n },\n });\n\n await wrap.interpreter.runPythonAsync(stdlib);\n wrap.interpreter.runPython(inputPatch);\n\n let code = dedent(script.textContent);\n if (script.src) code = await fetch(script.src).then(getText);\n\n const target = script.getAttribute(\"target\") || \"canvas\";\n const canvas = document.getElementById(target);\n wrap.interpreter.canvas.setCanvas2D(canvas);\n\n // allow 3rd party to hook themselves right before\n // the code gets executed\n const event = new CustomEvent(\"py-game\", {\n bubbles: true,\n cancelable: true,\n detail: {\n canvas,\n code,\n config,\n wrap,\n },\n });\n script.dispatchEvent(event);\n // run only if the default was not prevented\n if (!event.defaultPrevented)\n await wrap.interpreter.runPythonAsync(code);\n },\n },\n};\n\ndefine(\"py-game\", {\n config: { packages: [\"pygame-ce\"] },\n configURL: new URL(\"./config.txt\", location.href).href,\n interpreter: \"pyodide\",\n env: \"py-game\",\n hooks,\n});\n"],"names":["progress","createProgress","toBeWarned","hooks","main","onReady","async","wrap","script","console","warn","config","hasAttribute","value","getAttribute","json","toml","text","url","configDetails","JSON","parse","import","packages","interpreter","loadPackage","micropip","pyimport","install","keep_going","destroy","type","rest","lP","registry","get","loadProgress","URL","location","href","registerJsModule","PyWorker","Error","js_import","urls","Promise","all","map","target","id","runPythonAsync","stdlib","runPython","code","dedent","textContent","src","fetch","then","getText","canvas","document","getElementById","setCanvas2D","event","CustomEvent","bubbles","cancelable","detail","dispatchEvent","defaultPrevented","define","configURL","env"],"mappings":"wFAQA,MCGMA,EAAWC,EAAe,WAahC,IAAIC,GAAa,EAEjB,MAAMC,EAAQ,CACVC,KAAM,CACFC,QAASC,MAAOC,EAAMC,KACdN,IACAA,GAAa,EACbO,QAAQC,KAAK,sCAGjB,IAAIC,EAAS,CAAA,EACb,GAAIH,EAAOI,aAAa,UAAW,CAC/B,MAAMC,EAAQL,EAAOM,aAAa,WAC5BC,KAAEA,EAAIC,KAAEA,EAAIC,KAAEA,EAAIC,IAAEA,SAAcC,EAAcN,GACtD,GAAIE,EAAMJ,EAASS,KAAKC,MAAMJ,QACzB,GAAID,EAAM,CACX,MAAMK,MAAEA,SAAgBC,OACM,sBAE9BX,EAASU,EAAMJ,EACnB,CACA,GAAIN,EAAOY,SAAU,OACXhB,EAAKiB,YAAYC,YAAY,YACnC,MAAMC,EAAWnB,EAAKiB,YAAYG,SAAS,kBACrCD,EAASE,QAAQjB,EAAOY,SAAU,CACpCM,YAAY,IAEhBH,EAASI,SACb,MD5CK,EAACC,KAASC,IAASC,EAAGC,EAASC,IAAIJ,MAAUC,GC6C5CI,CACF,UACApC,EACAO,EAAKiB,YACLb,EACAO,EAAM,IAAImB,IAAInB,EAAKoB,SAASC,MAAMA,KAAOD,SAASC,KAE1D,CAEAhC,EAAKiB,YAAYgB,iBAAiB,YAAa,CAC3C,QAAAC,GACI,MAAM,IAAIC,MACN,4CAER,EACAC,UAAW,IAAIC,IACXC,QAAQC,IAAIF,EAAKG,IAAK7B,GAAQI,OAAOJ,KACzC,UAAI8B,GACA,OAAOxC,EAAOyC,EAClB,UAGE1C,EAAKiB,YAAY0B,eAAeC,GACtC5C,EAAKiB,YAAY4B,UA/DV,8IAiEP,IAAIC,EAAOC,EAAO9C,EAAO+C,aACrB/C,EAAOgD,MAAKH,QAAaI,MAAMjD,EAAOgD,KAAKE,KAAKC,IAEpD,MAAMX,EAASxC,EAAOM,aAAa,WAAa,SAC1C8C,EAASC,SAASC,eAAed,GACvCzC,EAAKiB,YAAYoC,OAAOG,YAAYH,GAIpC,MAAMI,EAAQ,IAAIC,YAAY,UAAW,CACrCC,SAAS,EACTC,YAAY,EACZC,OAAQ,CACJR,SACAP,OACA1C,SACAJ,UAGRC,EAAO6D,cAAcL,GAEhBA,EAAMM,wBACD/D,EAAKiB,YAAY0B,eAAeG,MAKtDkB,EAAO,UAAW,CACd5D,OAAQ,CAAEY,SAAU,CAAC,cACrBiD,UAAW,IAAInC,IAAI,eAAgBC,SAASC,MAAMA,KAClDf,YAAa,UACbiD,IAAK,UACLtE","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- import{T as t,b as e,r}from"./core-of365ts-.js";import{notify as s}from"./error-DN097_kl.js";const o=[],a=new WeakSet,n=t=>{throw s(t),new Error(t)},m=({attributes:{worker:t}})=>!t;let c=!0;for(const s of t.keys()){const t=`script[type="${s}"][terminal],${s}-script[terminal]`;o.push(t),e.set(t,async t=>{const e=document.querySelectorAll(o.join(","));if([].filter.call(e,m).length>1&&n("You can use at most 1 main terminal"),c&&(c=!1,document.head.append(Object.assign(document.createElement("link"),{rel:"stylesheet",href:r("./xterm.css",import.meta.url)}))),a.has(t))return;a.add(t);const i=e=>e.default(t);"mpy"===s?await import("./mpy-CmHIC_T4.js").then(i):await import("./py-BY9OyURr.js").then(i)})}
2
- //# sourceMappingURL=py-terminal-DDBTLKy-.js.map
1
+ import{T as t,b as e,r}from"./core-Ze80f4LS.js";import{notify as s}from"./error-BQWK5Wkw.js";const o=[],a=new WeakSet,n=t=>{throw s(t),new Error(t)},m=({attributes:{worker:t}})=>!t;let c=!0;for(const s of t.keys()){const t=`script[type="${s}"][terminal],${s}-script[terminal]`;o.push(t),e.set(t,async t=>{const e=document.querySelectorAll(o.join(","));if([].filter.call(e,m).length>1&&n("You can use at most 1 main terminal"),c&&(c=!1,document.head.append(Object.assign(document.createElement("link"),{rel:"stylesheet",href:r("./xterm.css",import.meta.url)}))),a.has(t))return;a.add(t);const i=e=>e.default(t);"mpy"===s?await import("./mpy-DXY_Z69L.js").then(i):await import("./py-BXEV3Waf.js").then(i)})}
2
+ //# sourceMappingURL=py-terminal-D05dSP7E.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"py-terminal-DDBTLKy-.js","sources":["../src/plugins/py-terminal.js"],"sourcesContent":["// PyScript py-terminal plugin\nimport { TYPES, relative_url } from \"../core.js\";\nimport { notify } from \"./error.js\";\nimport { customObserver } from \"polyscript/exports\";\n\n// will contain all valid selectors\nconst SELECTORS = [];\n\n// avoid processing same elements twice\nconst processed = new WeakSet();\n\n// show the error on main and\n// stops the module from keep executing\nconst notifyAndThrow = (message) => {\n notify(message);\n throw new Error(message);\n};\n\nconst onceOnMain = ({ attributes: { worker } }) => !worker;\n\nlet addStyle = true;\n\nfor (const type of TYPES.keys()) {\n const selector = `script[type=\"${type}\"][terminal],${type}-script[terminal]`;\n SELECTORS.push(selector);\n customObserver.set(selector, async (element) => {\n // we currently support only one terminal on main as in \"classic\"\n const terminals = document.querySelectorAll(SELECTORS.join(\",\"));\n if ([].filter.call(terminals, onceOnMain).length > 1)\n notifyAndThrow(\"You can use at most 1 main terminal\");\n\n // import styles lazily\n if (addStyle) {\n addStyle = false;\n document.head.append(\n Object.assign(document.createElement(\"link\"), {\n rel: \"stylesheet\",\n href: relative_url(\"./xterm.css\", import.meta.url),\n }),\n );\n }\n\n if (processed.has(element)) return;\n processed.add(element);\n\n const bootstrap = (module) => module.default(element);\n\n // we can't be smart with template literals for the dynamic import\n // or bundlers are incapable of producing multiple files around\n if (type === \"mpy\") {\n await import(/* webpackIgnore: true */ \"./py-terminal/mpy.js\").then(\n bootstrap,\n );\n } else {\n await import(/* webpackIgnore: true */ \"./py-terminal/py.js\").then(\n bootstrap,\n );\n }\n });\n}\n"],"names":["SELECTORS","processed","WeakSet","notifyAndThrow","message","notify","Error","onceOnMain","attributes","worker","addStyle","type","TYPES","keys","selector","push","customObserver","set","async","element","terminals","document","querySelectorAll","join","filter","call","length","head","append","Object","assign","createElement","rel","href","relative_url","url","has","add","bootstrap","module","default","import","then"],"mappings":"6FAMA,MAAMA,EAAY,GAGZC,EAAY,IAAIC,QAIhBC,EAAkBC,IAEpB,MADAC,EAAOD,GACD,IAAIE,MAAMF,IAGdG,EAAa,EAAGC,YAAcC,cAAgBA,EAEpD,IAAIC,GAAW,EAEf,IAAK,MAAMC,KAAQC,EAAMC,OAAQ,CAC7B,MAAMC,EAAW,gBAAgBH,iBAAoBA,qBACrDX,EAAUe,KAAKD,GACfE,EAAeC,IAAIH,EAAUI,MAAOC,IAEhC,MAAMC,EAAYC,SAASC,iBAAiBtB,EAAUuB,KAAK,MAe3D,GAdI,GAAGC,OAAOC,KAAKL,EAAWb,GAAYmB,OAAS,GAC/CvB,EAAe,uCAGfO,IACAA,GAAW,EACXW,SAASM,KAAKC,OACVC,OAAOC,OAAOT,SAASU,cAAc,QAAS,CAC1CC,IAAK,aACLC,KAAMC,EAAa,0BAA2BC,SAKtDlC,EAAUmC,IAAIjB,GAAU,OAC5BlB,EAAUoC,IAAIlB,GAEd,MAAMmB,EAAaC,GAAWA,EAAOC,QAAQrB,GAIhC,QAATR,QACM8B,OAAiC,qBAAwBC,KAC3DJ,SAGEG,OAAiC,oBAAuBC,KAC1DJ,IAIhB"}
1
+ {"version":3,"file":"py-terminal-D05dSP7E.js","sources":["../src/plugins/py-terminal.js"],"sourcesContent":["// PyScript py-terminal plugin\nimport { TYPES, relative_url } from \"../core.js\";\nimport { notify } from \"./error.js\";\nimport { customObserver } from \"polyscript/exports\";\n\n// will contain all valid selectors\nconst SELECTORS = [];\n\n// avoid processing same elements twice\nconst processed = new WeakSet();\n\n// show the error on main and\n// stops the module from keep executing\nconst notifyAndThrow = (message) => {\n notify(message);\n throw new Error(message);\n};\n\nconst onceOnMain = ({ attributes: { worker } }) => !worker;\n\nlet addStyle = true;\n\nfor (const type of TYPES.keys()) {\n const selector = `script[type=\"${type}\"][terminal],${type}-script[terminal]`;\n SELECTORS.push(selector);\n customObserver.set(selector, async (element) => {\n // we currently support only one terminal on main as in \"classic\"\n const terminals = document.querySelectorAll(SELECTORS.join(\",\"));\n if ([].filter.call(terminals, onceOnMain).length > 1)\n notifyAndThrow(\"You can use at most 1 main terminal\");\n\n // import styles lazily\n if (addStyle) {\n addStyle = false;\n document.head.append(\n Object.assign(document.createElement(\"link\"), {\n rel: \"stylesheet\",\n href: relative_url(\"./xterm.css\", import.meta.url),\n }),\n );\n }\n\n if (processed.has(element)) return;\n processed.add(element);\n\n const bootstrap = (module) => module.default(element);\n\n // we can't be smart with template literals for the dynamic import\n // or bundlers are incapable of producing multiple files around\n if (type === \"mpy\") {\n await import(/* webpackIgnore: true */ \"./py-terminal/mpy.js\").then(\n bootstrap,\n );\n } else {\n await import(/* webpackIgnore: true */ \"./py-terminal/py.js\").then(\n bootstrap,\n );\n }\n });\n}\n"],"names":["SELECTORS","processed","WeakSet","notifyAndThrow","message","notify","Error","onceOnMain","attributes","worker","addStyle","type","TYPES","keys","selector","push","customObserver","set","async","element","terminals","document","querySelectorAll","join","filter","call","length","head","append","Object","assign","createElement","rel","href","relative_url","url","has","add","bootstrap","module","default","import","then"],"mappings":"6FAMA,MAAMA,EAAY,GAGZC,EAAY,IAAIC,QAIhBC,EAAkBC,IAEpB,MADAC,EAAOD,GACD,IAAIE,MAAMF,IAGdG,EAAa,EAAGC,YAAcC,cAAgBA,EAEpD,IAAIC,GAAW,EAEf,IAAK,MAAMC,KAAQC,EAAMC,OAAQ,CAC7B,MAAMC,EAAW,gBAAgBH,iBAAoBA,qBACrDX,EAAUe,KAAKD,GACfE,EAAeC,IAAIH,EAAUI,MAAOC,IAEhC,MAAMC,EAAYC,SAASC,iBAAiBtB,EAAUuB,KAAK,MAe3D,GAdI,GAAGC,OAAOC,KAAKL,EAAWb,GAAYmB,OAAS,GAC/CvB,EAAe,uCAGfO,IACAA,GAAW,EACXW,SAASM,KAAKC,OACVC,OAAOC,OAAOT,SAASU,cAAc,QAAS,CAC1CC,IAAK,aACLC,KAAMC,EAAa,0BAA2BC,SAKtDlC,EAAUmC,IAAIjB,GAAU,OAC5BlB,EAAUoC,IAAIlB,GAEd,MAAMmB,EAAaC,GAAWA,EAAOC,QAAQrB,GAIhC,QAATR,QACM8B,OAAiC,qBAAwBC,KAC3DJ,SAGEG,OAAiC,oBAAuBC,KAC1DJ,IAIhB"}
@@ -0,0 +1,2 @@
1
+ var t=new Proxy({v:["latest","stable","314.0.2","314.0.1","314.0.0","0.29.4","0.29.3","0.29.2","0.29.1","0.29.0","0.28.3","0.28.2","0.28.1","0.28.0","0.27.7","0.27.6","0.27.5","0.27.4","0.27.3","0.27.2","0.27.1","0.27.0"],p:{affine:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],aiohappyeyeballs:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],aiohttp:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],aiosignal:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],altair:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"annotated-doc":[0,1,2,3,4],"annotated-types":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],anyio:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],apsw:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"argon2-cffi":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"argon2-cffi-bindings":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],astropy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],astropy_iers_data:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],asttokens:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"async-timeout":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],atomicwrites:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],attrs:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"audioop-lts":[0,1,2,3,4,5,6,7,8,9,10,11,12],"awkward-cpp":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],b2d:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],bcrypt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],beautifulsoup4:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"bilby.cython":[0,1,2,3,4,5,6,7,8,9],biopython:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],bitarray:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],bitstring:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],bleach:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],bokeh:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"boost-histogram":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],bottleneck:[0,1,2,3,4,5,6,7],brotli:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],cachetools:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],cartopy:[0,1,2,3,4,5,6,7,14,15,16,17,18,19,20,21],casadi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"cbor-diag":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],certifi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],cffi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],cffi_example:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],cftime:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"charset-normalizer":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],clarabel:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],click:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],cligj:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],clingo:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],cloudpickle:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],cmyt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],cobs:[0,1,2,3,4,5,6,7,8,9,10,11,12],colorspacious:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],contourpy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],coolprop:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],coverage:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],crc32c:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],crcmod:[0,1,2,3,4],cryptography:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],cssselect:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"cvxpy-base":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],cycler:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],cysignals:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],cytoolz:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],decorator:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],demes:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],deprecated:[0,1,2,3,4,5],deprecation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],diskcache:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],distlib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],distro:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],dnspython:[0,1,2,3,4],docutils:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],donfig:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],duckdb:[0,1,2,3,4,14,15,16,17,18,19,20,21],ewah_bool_utils:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],exceptiongroup:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],executing:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],fastapi:[0,1,2,3,4,5,6,7,8,9],fiona:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],fonttools:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],freesasa:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],frozenlist:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],fsspec:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],future:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],galpy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],geopandas:[0,1,2,3,4,5,6,7,14,15,16,17,18,19,20,21],gmpy2:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"google-crc32c":[0,1,2,3,4,5,6,7],h11:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],h3:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],h5py:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],healpy:[0,1,2,5,6,7],highspy:[0,1,2,3,4,5,6,7,8,9],html5lib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],httpcore:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],httpx:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],idna:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],igraph:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],imageio:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],iminuit:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],iniconfig:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],ipython:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],jedi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],jinja2:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],jiter:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],joblib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],jsonpatch:[0,1,2,3,4,5,6,7,8,9],jsonpointer:[0,1,2,3,4,5,6,7,8,9],jsonschema:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],jsonschema_specifications:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],kiwisolver:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"lakers-python":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],lazy_loader:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"lazy-object-proxy":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],libcst:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],librt:[0,1,2,3,4],lightgbm:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],logbook:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],lxml:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],lz4:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],markupsafe:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],matplotlib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"matplotlib-inline":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"memory-allocator":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],micropip:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],ml_dtypes:[0,1,2,3,4,5,6,7],mmh3:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"more-itertools":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],mpmath:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],msgpack:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],msgspec:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],msprime:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],multidict:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],munch:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],mypy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],narwhals:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],ndindex:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],netcdf4:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],networkx:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],newick:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],nh3:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],nlopt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],nltk:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],numcodecs:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],numpy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],openai:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"opencv-python":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],optlang:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],orjson:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],packaging:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pandas:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],parso:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],patsy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pcodec:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],peewee:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],phispy:[0,1,2,3,4,5],"pi-heif":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pillow:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"pillow-heif":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pkgconfig:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],platformdirs:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],pluggy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],ply:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],polars:[0,1,2,3,4,14,15,16,17,18,19,20,21],prompt_toolkit:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],propcache:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],protobuf:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"pure-eval":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],py:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pyarrow:[0,1,2,3,4,5,6,7,14,15,16,17,18,19,20],pyclipper:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pycparser:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pycryptodome:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pydantic:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pydantic_core:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pydoc_data:[0,1,2,3,4],pyerfa:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"pygame-ce":[0,1,2,3,4,5,6,7,8,9,14,15,16,17,18,19,20,21],pygments:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pyheif:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pyiceberg:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pyinstrument:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pymongo:[0,1,2,3,4],pymupdf:[0,1,2,3,4,5,6,7,8,9,10,11,12],pynacl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"pyodide-http":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"pyodide-unix-timezones":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pyparsing:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pyproj:[0,1,2,3,4,5,6,7,14,15,16,17,18,19,20,21],pyroaring:[0,1,2,3,4,5],pyrodigal:[0,1,2,3,4,5,6,7],pyrsistent:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pysam:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pyshp:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pytaglib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],pytest:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"pytest-asyncio":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"pytest-benchmark":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pytest_httpx:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"python-calamine":[0,1,2,3,4,5,6,7,8,9],"python-dateutil":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"python-flint":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"python-flirt":[0,1,2,3,4,5],"python-sat":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"python-solvespace":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pytz:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pywavelets:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pyxirr:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pyyaml:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],rasterio:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],rateslib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],rebound:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],reboundx:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],referencing:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],regex:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],requests:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],retrying:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],rich:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"rpds-py":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"ruamel.yaml":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],safetensors:[0,1,2,3,4],"scikit-image":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"scikit-learn":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],scipy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],screed:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],sentencepiece:[0,1,2,3,4],setuptools:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],shapely:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],simplejson:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],sisl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],six:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"smart-open":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],sniffio:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],sortedcontainers:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],soundfile:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],soupsieve:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],sourmash:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],soxr:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],sparseqr:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],sqlalchemy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"stack-data":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],starlette:[0,1,2,3,4,5,6,7,8,9],statsmodels:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],strictyaml:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],svgwrite:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],swiglpk:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],sympy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],tblib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],termcolor:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],texttable:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],texture2ddecoder:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],threadpoolctl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],tiktoken:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],tomli:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"tomli-w":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],toolz:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],tqdm:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],traitlets:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],traits:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"tree-sitter":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"tree-sitter-go":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"tree-sitter-java":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"tree-sitter-python":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],tskit:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"typing-extensions":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"typing-inspection":[0,1,2,3,4,5,6,7],tzdata:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],ujson:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],uncertainties:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],unyt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],urllib3:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"vega-datasets":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],vrplib:[0,1,2,3,4,5,6,7,8,9],wcwidth:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],webencodings:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],wordcloud:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],wrapt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],xarray:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],xgboost:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],xlrd:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],xxhash:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],xyzservices:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],yarl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],yt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],zarr:[0,1,2,3,4,14,15,16,17,18,19,20,21],zengl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],zfpy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],zstandard:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],blosc2:[3,4,5,6,7,8,9,10,11,12,13],fastcan:[3,4,5,6,7,8,9],gsw:[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],robotraconteur:[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],asciitree:[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],autograd:[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],cramjam:[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"css-inline":[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],fastparquet:[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"imgui-bundle":[5,6,7,8,9,10,11,12,13],inspice:[5,6,7,8,9,10,11,12,13],pplpy:[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],primecountpy:[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],pycdfpp:[5,6,7],"pylimer-tools":[5,6,7,8,9],"python-magic":[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],river:[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],rustworkx:[5,6,7,8,9,10,11,12,13],pyxel:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"arro3-compute":[14,15,16,17,18,19,20,21],"arro3-core":[14,15,16,17,18,19,20,21],"arro3-io":[14,15,16,17,18,19,20,21],gensim:[14,15,16,17,18,19,20,21],"matplotlib-pyodide":[14,15,16,17,18,19,20,21],mne:[14,15,16,17,18,19,20,21],osqp:[14,15,16],"rust-abi-test":[14,15,16,17,18,19,20,21],"rust-panic-test":[14,15,16,17,18,19,20,21]}},{has:(t,e)=>t.v.includes(e),get:(t,e)=>{const o=t.v.indexOf(e);return new Proxy(t.p,{has:(t,e)=>t[e]?.includes(o)})}});export{t as default};
2
+ //# sourceMappingURL=pyodide_graph-CX6fRcVL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pyodide_graph-CX6fRcVL.js","sources":["../node_modules/polyscript/esm/interpreter/pyodide_graph.js"],"sourcesContent":["// ⚠️ GENERATED AUTOMATICALLY - DO NOT MODIFY\nexport default new Proxy(\n {'v':['latest','stable','314.0.2','314.0.1','314.0.0','0.29.4','0.29.3','0.29.2','0.29.1','0.29.0','0.28.3','0.28.2','0.28.1','0.28.0','0.27.7','0.27.6','0.27.5','0.27.4','0.27.3','0.27.2','0.27.1','0.27.0'],'p':{'affine':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'aiohappyeyeballs':[0,1,2,3,4,5,6,7,8,9,10,11,12,13],'aiohttp':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'aiosignal':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'altair':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'annotated-doc':[0,1,2,3,4],'annotated-types':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'anyio':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],'apsw':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],'argon2-cffi':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'argon2-cffi-bindings':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'astropy':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'astropy_iers_data':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'asttokens':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'async-timeout':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'atomicwrites':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'attrs':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'audioop-lts':[0,1,2,3,4,5,6,7,8,9,10,11,12],'awkward-cpp':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'b2d':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'bcrypt':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'beautifulsoup4':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'bilby.cython':[0,1,2,3,4,5,6,7,8,9],'biopython':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'bitarray':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'bitstring':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'bleach':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'bokeh':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'boost-histogram':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'bottleneck':[0,1,2,3,4,5,6,7],'brotli':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'cachetools':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'cartopy':[0,1,2,3,4,5,6,7,14,15,16,17,18,19,20,21],'casadi':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'cbor-diag':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'certifi':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'cffi':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'cffi_example':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'cftime':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'charset-normalizer':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'clarabel':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'click':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'cligj':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'clingo':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'cloudpickle':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'cmyt':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'cobs':[0,1,2,3,4,5,6,7,8,9,10,11,12],'colorspacious':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'contourpy':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'coolprop':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'coverage':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'crc32c':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'crcmod':[0,1,2,3,4],'cryptography':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'cssselect':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'cvxpy-base':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'cycler':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'cysignals':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'cytoolz':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'decorator':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'demes':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'deprecated':[0,1,2,3,4,5],'deprecation':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'diskcache':[0,1,2,3,4,5,6,7,8,9,10,11,12,13],'distlib':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'distro':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],'dnspython':[0,1,2,3,4],'docutils':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'donfig':[0,1,2,3,4,5,6,7,8,9,10,11,12,13],'duckdb':[0,1,2,3,4,14,15,16,17,18,19,20,21],'ewah_bool_utils':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'exceptiongroup':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'executing':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'fastapi':[0,1,2,3,4,5,6,7,8,9],'fiona':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'fonttools':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'freesasa':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'frozenlist':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'fsspec':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'future':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'galpy':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'geopandas':[0,1,2,3,4,5,6,7,14,15,16,17,18,19,20,21],'gmpy2':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'google-crc32c':[0,1,2,3,4,5,6,7],'h11':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],'h3':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],'h5py':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'healpy':[0,1,2,5,6,7],'highspy':[0,1,2,3,4,5,6,7,8,9],'html5lib':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'httpcore':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],'httpx':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],'idna':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'igraph':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'imageio':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'iminuit':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'iniconfig':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'ipython':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'jedi':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'jinja2':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'jiter':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],'joblib':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'jsonpatch':[0,1,2,3,4,5,6,7,8,9],'jsonpointer':[0,1,2,3,4,5,6,7,8,9],'jsonschema':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'jsonschema_specifications':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'kiwisolver':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'lakers-python':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'lazy_loader':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'lazy-object-proxy':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'libcst':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'librt':[0,1,2,3,4],'lightgbm':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'logbook':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'lxml':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'lz4':[0,1,2,3,4,5,6,7,8,9,10,11,12,13],'markupsafe':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'matplotlib':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'matplotlib-inline':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'memory-allocator':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'micropip':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'ml_dtypes':[0,1,2,3,4,5,6,7],'mmh3':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'more-itertools':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'mpmath':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'msgpack':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'msgspec':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'msprime':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'multidict':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'munch':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'mypy':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'narwhals':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'ndindex':[0,1,2,3,4,5,6,7,8,9,10,11,12,13],'netcdf4':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'networkx':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'newick':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'nh3':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'nlopt':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'nltk':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'numcodecs':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'numpy':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'openai':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],'opencv-python':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'optlang':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'orjson':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'packaging':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pandas':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'parso':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'patsy':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pcodec':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],'peewee':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'phispy':[0,1,2,3,4,5],'pi-heif':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pillow':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pillow-heif':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pkgconfig':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'platformdirs':[0,1,2,3,4,5,6,7,8,9,10,11,12,13],'pluggy':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'ply':[0,1,2,3,4,5,6,7,8,9,10,11,12,13],'polars':[0,1,2,3,4,14,15,16,17,18,19,20,21],'prompt_toolkit':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'propcache':[0,1,2,3,4,5,6,7,8,9,10,11,12,13],'protobuf':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pure-eval':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'py':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pyarrow':[0,1,2,3,4,5,6,7,14,15,16,17,18,19,20],'pyclipper':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pycparser':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pycryptodome':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pydantic':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pydantic_core':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pydoc_data':[0,1,2,3,4],'pyerfa':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pygame-ce':[0,1,2,3,4,5,6,7,8,9,14,15,16,17,18,19,20,21],'pygments':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pyheif':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pyiceberg':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pyinstrument':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pymongo':[0,1,2,3,4],'pymupdf':[0,1,2,3,4,5,6,7,8,9,10,11,12],'pynacl':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pyodide-http':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pyodide-unix-timezones':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pyparsing':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pyproj':[0,1,2,3,4,5,6,7,14,15,16,17,18,19,20,21],'pyroaring':[0,1,2,3,4,5],'pyrodigal':[0,1,2,3,4,5,6,7],'pyrsistent':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pysam':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pyshp':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pytaglib':[0,1,2,3,4,5,6,7,8,9,10,11,12,13],'pytest':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pytest-asyncio':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pytest-benchmark':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pytest_httpx':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],'python-calamine':[0,1,2,3,4,5,6,7,8,9],'python-dateutil':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'python-flint':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'python-flirt':[0,1,2,3,4,5],'python-sat':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'python-solvespace':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pytz':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pywavelets':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pyxirr':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pyyaml':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'rasterio':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'rateslib':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'rebound':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'reboundx':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'referencing':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'regex':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'requests':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'retrying':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'rich':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'rpds-py':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'ruamel.yaml':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'safetensors':[0,1,2,3,4],'scikit-image':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'scikit-learn':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'scipy':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'screed':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'sentencepiece':[0,1,2,3,4],'setuptools':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'shapely':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'simplejson':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'sisl':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'six':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'smart-open':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'sniffio':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],'sortedcontainers':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'soundfile':[0,1,2,3,4,5,6,7,8,9,10,11,12,13],'soupsieve':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'sourmash':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'soxr':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'sparseqr':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'sqlalchemy':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'stack-data':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'starlette':[0,1,2,3,4,5,6,7,8,9],'statsmodels':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'strictyaml':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'svgwrite':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'swiglpk':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'sympy':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'tblib':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'termcolor':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'texttable':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'texture2ddecoder':[0,1,2,3,4,5,6,7,8,9,10,11,12,13],'threadpoolctl':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'tiktoken':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'tomli':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'tomli-w':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'toolz':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'tqdm':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'traitlets':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'traits':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'tree-sitter':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'tree-sitter-go':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'tree-sitter-java':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'tree-sitter-python':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'tskit':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'typing-extensions':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'typing-inspection':[0,1,2,3,4,5,6,7],'tzdata':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'ujson':[0,1,2,3,4,5,6,7,8,9,10,11,12,13],'uncertainties':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'unyt':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'urllib3':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'vega-datasets':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'vrplib':[0,1,2,3,4,5,6,7,8,9],'wcwidth':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'webencodings':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'wordcloud':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'wrapt':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'xarray':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'xgboost':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'xlrd':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'xxhash':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'xyzservices':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'yarl':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'yt':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'zarr':[0,1,2,3,4,14,15,16,17,18,19,20,21],'zengl':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'zfpy':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'zstandard':[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'blosc2':[3,4,5,6,7,8,9,10,11,12,13],'fastcan':[3,4,5,6,7,8,9],'gsw':[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'robotraconteur':[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'asciitree':[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'autograd':[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'cramjam':[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'css-inline':[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],'fastparquet':[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'imgui-bundle':[5,6,7,8,9,10,11,12,13],'inspice':[5,6,7,8,9,10,11,12,13],'pplpy':[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'primecountpy':[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'pycdfpp':[5,6,7],'pylimer-tools':[5,6,7,8,9],'python-magic':[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'river':[5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'rustworkx':[5,6,7,8,9,10,11,12,13],'pyxel':[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],'arro3-compute':[14,15,16,17,18,19,20,21],'arro3-core':[14,15,16,17,18,19,20,21],'arro3-io':[14,15,16,17,18,19,20,21],'gensim':[14,15,16,17,18,19,20,21],'matplotlib-pyodide':[14,15,16,17,18,19,20,21],'mne':[14,15,16,17,18,19,20,21],'osqp':[14,15,16],'rust-abi-test':[14,15,16,17,18,19,20,21],'rust-panic-test':[14,15,16,17,18,19,20,21]}},\n {\n has: (target, version) => target.v.includes(version),\n get: (target, version) => {\n const i = target.v.indexOf(version);\n return new Proxy(target.p, {\n has: (target, pkg) => target[pkg]?.includes(i),\n });\n },\n },\n);\n"],"names":["pyodide_graph","Proxy","v","p","affine","aiohappyeyeballs","aiohttp","aiosignal","altair","anyio","apsw","astropy","astropy_iers_data","asttokens","atomicwrites","attrs","b2d","bcrypt","beautifulsoup4","biopython","bitarray","bitstring","bleach","bokeh","bottleneck","brotli","cachetools","cartopy","casadi","certifi","cffi","cffi_example","cftime","clarabel","click","cligj","clingo","cloudpickle","cmyt","cobs","colorspacious","contourpy","coolprop","coverage","crc32c","crcmod","cryptography","cssselect","cycler","cysignals","cytoolz","decorator","demes","deprecated","deprecation","diskcache","distlib","distro","dnspython","docutils","donfig","duckdb","ewah_bool_utils","exceptiongroup","executing","fastapi","fiona","fonttools","freesasa","frozenlist","fsspec","future","galpy","geopandas","gmpy2","h11","h3","h5py","healpy","highspy","html5lib","httpcore","httpx","idna","igraph","imageio","iminuit","iniconfig","ipython","jedi","jinja2","jiter","joblib","jsonpatch","jsonpointer","jsonschema","jsonschema_specifications","kiwisolver","lazy_loader","libcst","librt","lightgbm","logbook","lxml","lz4","markupsafe","matplotlib","micropip","ml_dtypes","mmh3","mpmath","msgpack","msgspec","msprime","multidict","munch","mypy","narwhals","ndindex","netcdf4","networkx","newick","nh3","nlopt","nltk","numcodecs","numpy","openai","optlang","orjson","packaging","pandas","parso","patsy","pcodec","peewee","phispy","pillow","pkgconfig","platformdirs","pluggy","ply","polars","prompt_toolkit","propcache","protobuf","py","pyarrow","pyclipper","pycparser","pycryptodome","pydantic","pydantic_core","pydoc_data","pyerfa","pygments","pyheif","pyiceberg","pyinstrument","pymongo","pymupdf","pynacl","pyparsing","pyproj","pyroaring","pyrodigal","pyrsistent","pysam","pyshp","pytaglib","pytest","pytest_httpx","pytz","pywavelets","pyxirr","pyyaml","rasterio","rateslib","rebound","reboundx","referencing","regex","requests","retrying","rich","safetensors","scipy","screed","sentencepiece","setuptools","shapely","simplejson","sisl","six","sniffio","sortedcontainers","soundfile","soupsieve","sourmash","soxr","sparseqr","sqlalchemy","starlette","statsmodels","strictyaml","svgwrite","swiglpk","sympy","tblib","termcolor","texttable","texture2ddecoder","threadpoolctl","tiktoken","tomli","toolz","tqdm","traitlets","traits","tskit","tzdata","ujson","uncertainties","unyt","urllib3","vrplib","wcwidth","webencodings","wordcloud","wrapt","xarray","xgboost","xlrd","xxhash","xyzservices","yarl","yt","zarr","zengl","zfpy","zstandard","blosc2","fastcan","gsw","robotraconteur","asciitree","autograd","cramjam","fastparquet","inspice","pplpy","primecountpy","pycdfpp","river","rustworkx","pyxel","gensim","mne","osqp","has","target","version","includes","get","i","indexOf","pkg"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/storage.js CHANGED
@@ -1,2 +1,2 @@
1
- const{assign:e}=Object,t="entries",s="readonly",n="readwrite",r={durability:"default",prefix:"IDBMap"},a=({target:{result:e}})=>e;class i extends EventTarget{#e;#t;#s;async#n(s,n){const r=(await this.#e).transaction(t,n,this.#t);return new Promise((n,a)=>e(s(r.objectStore(t)),{onsuccess:n,onerror:a}))}constructor(s,{durability:n=r.durability,prefix:i=r.prefix}=r){super(),this.#s=i,this.#t={durability:n},this.#e=new Promise((n,r)=>{e(indexedDB.open(`${this.#s}/${s}`),{onupgradeneeded({target:{result:e,transaction:s}}){e.objectStoreNames.length||e.createObjectStore(t),s.oncomplete=()=>n(e)},onsuccess(e){n(a(e))},onerror(e){r(e),this.dispatchEvent(e)}})}).then(e=>{const t=this.dispatchEvent.bind(this);for(const s in e)s.startsWith("on")&&(e[s]=t);return e})}dispatchEvent(t){const{type:s,message:n,isTrusted:r}=t;return super.dispatchEvent(r?e(new Event(s),{message:n}):t)}async close(){(await this.#e).close()}get size(){return this.#n(e=>e.count(),s).then(a)}async clear(){await this.#n(e=>e.clear(),n)}async delete(e){await this.#n(t=>t.delete(e),n)}async entries(){const e=await this.keys();return Promise.all(e.map(e=>this.get(e).then(t=>[e,t])))}async forEach(e,t=this){for(const[s,n]of await this.entries())await e.call(t,n,s,this)}async get(e){return await this.#n(t=>t.get(e),s).then(a)}async has(e){return void 0!==await this.#n(t=>t.getKey(e),s).then(a)}async keys(){return await this.#n(e=>e.getAllKeys(),s).then(a)}async set(e,t){return await this.#n(s=>s.put(t,e),n),this}async values(){const e=await this.keys();return Promise.all(e.map(e=>this.get(e)))}get[Symbol.toStringTag](){return this.#s}}class c extends Map{#r;#a;constructor(...e){super(),this.#r=new i(...e),this.#a=this.#r.entries().then(e=>{for(const[t,s]of e)super.set(t,s)})}async close(){await this.#a,await this.#r.close()}async sync(){await this.#a}clear(){return this.#a=this.#a.then(()=>this.#r.clear()),super.clear()}delete(e){return this.#a=this.#a.then(()=>this.#r.delete(e)),super.delete(e)}set(e,t){return this.#a=this.#a.then(()=>this.#r.set(e,t)),super.set(e,t)}}const{parse:o,stringify:u}=JSON,{keys:l}=Object,h=String,y="string",p={},f="object",w=(e,t)=>t,d=e=>e instanceof h?h(e):e,g=(e,t)=>typeof t===y?new h(t):t,m=(e,t,s,n)=>{const r=[];for(let a=l(s),{length:i}=a,c=0;c<i;c++){const i=a[c],o=s[i];if(o instanceof h){const a=e[o];typeof a!==f||t.has(a)?s[i]=n.call(s,i,a):(t.add(a),s[i]=p,r.push({k:i,a:[e,t,a,n]}))}else s[i]!==p&&(s[i]=n.call(s,i,o))}for(let{length:e}=r,t=0;t<e;t++){const{k:e,a:a}=r[t];s[e]=n.call(s,e,m.apply(null,a))}return s},b=(e,t,s)=>{const n=h(t.push(s)-1);return e.set(s,n),n},x=(e,t,s)=>{const n=w,r=new Map,a=[],i=[];let c=+b(r,a,n.call({"":e},"",e)),o=!c;for(;c<a.length;)o=!0,i[c]=u(a[c++],l,s);return"["+i.join(",")+"]";function l(e,t){if(o)return o=!o,t;const s=n.call(this,e,t);switch(typeof s){case f:if(null===s)return s;case y:return r.get(s)||b(r,a,s)}return s}},{isView:v}=ArrayBuffer,q=e=>{const[t,s]=(e=>{const t=o(e,g).map(d),s=t[0],n=w,r=typeof s===f&&s?m(t,new Set,s,n):s;return n.call({"":r},"",r)})(e);return"null"===t?null:"generic"===t?s:"bytearray"===t?new Uint8Array(e).buffer:"memoryview"===t?new Uint8Array(e):e},S=async e=>{if(!e)throw new SyntaxError("The storage name must be defined");const t=new c(`@pyscript/${e}`),s=new Map;await t.sync();for(const[e,n]of t.entries())s.set(e,q(n));const n=()=>{s.clear(),t.clear()},r=async()=>{await t.sync()};return new Proxy(s,{ownKeys:e=>[...e.keys()],has:(e,t)=>e.has(t),get:(e,t)=>"clear"===t?n:"sync"===t?r:e.get(t),set:(e,s,n)=>(e.set(s,n),t.set(s,(e=>{if(null==e)return x(["null",0]);switch(typeof e){case"object":if(v(e))return x(["memoryview",[...e]]);if(e instanceof ArrayBuffer)return x(["bytearray",[...new Uint8Array(e)]]);case"string":case"number":case"boolean":return x(["generic",e]);default:throw new TypeError(`Unexpected value: ${String(e)}`)}})(n)),!0),deleteProperty:(e,s)=>(e.has(s)&&(e.delete(s),t.delete(s)),!0)})};export{S as storage};
1
+ const{assign:e}=Object,t="entries",s="readonly",n="readwrite",r={durability:"default",prefix:"IDBMap"},a=({target:{result:e}})=>e;class i extends EventTarget{#e;#t;#s;async#n(s,n){const r=(await this.#e).transaction(t,n,this.#t);return new Promise((n,a)=>e(s(r.objectStore(t)),{onsuccess:n,onerror:a}))}constructor(s,{durability:n=r.durability,prefix:i=r.prefix}=r){super(),this.#s=i,this.#t={durability:n},this.#e=new Promise((n,r)=>{e(indexedDB.open(`${this.#s}/${s}`),{onupgradeneeded({target:{result:e,transaction:s}}){e.objectStoreNames.length||e.createObjectStore(t),s.oncomplete=()=>n(e)},onsuccess(e){n(a(e))},onerror(e){r(e),this.dispatchEvent(e)}})}).then(e=>{const t=this.dispatchEvent.bind(this);for(const s in e)s.startsWith("on")&&(e[s]=t);return e})}dispatchEvent(t){const{type:s,message:n,isTrusted:r}=t;return super.dispatchEvent(r?e(new Event(s),{message:n}):t)}async close(){(await this.#e).close()}get size(){return this.#n(e=>e.count(),s).then(a)}async clear(){await this.#n(e=>e.clear(),n)}async delete(e){await this.#n(t=>t.delete(e),n)}async entries(){const e=await this.keys();return Promise.all(e.map(e=>this.get(e).then(t=>[e,t])))}async forEach(e,t=this){for(const[s,n]of await this.entries())await e.call(t,n,s,this)}async get(e){return await this.#n(t=>t.get(e),s).then(a)}async has(e){return void 0!==await this.#n(t=>t.getKey(e),s).then(a)}async keys(){return await this.#n(e=>e.getAllKeys(),s).then(a)}async set(e,t){return await this.#n(s=>s.put(t,e),n),this}async values(){const e=await this.keys();return Promise.all(e.map(e=>this.get(e)))}get[Symbol.toStringTag](){return this.#s}}class c extends Map{#r;#a;constructor(...e){super(),this.#r=new i(...e),this.#a=this.#r.entries().then(e=>{for(const[t,s]of e)super.set(t,s)})}async close(){await this.#a,await this.#r.close()}async sync(){await this.#a}clear(){return this.#a=this.#a.then(()=>this.#r.clear()),super.clear()}delete(e){return this.#a=this.#a.then(()=>this.#r.delete(e)),super.delete(e)}set(e,t){return this.#a=this.#a.then(()=>this.#r.set(e,t)),super.set(e,t)}}const{parse:o,stringify:u}=JSON,{keys:l}=Object,h=String,y="string",p={},f="object",w=(e,t)=>t,d=e=>e instanceof h?h(e):e,g=(e,t)=>typeof t===y?new h(t):t,m=(e,t,s)=>{const n=h(t.push(s)-1);return e.set(s,n),n},b=(e,t)=>{const s=o(e,g).map(d),n=w;let r=s[0];if(typeof r===f&&r){const e=[],t=((e,t,s,n)=>r=>{for(let a=l(r),{length:i}=a,c=0;c<i;c++){const i=a[c],o=r[i];if(o instanceof h){const a=e[+o];typeof a!==f||s.has(a)?r[i]=n.call(r,i,a):(s.add(a),r[i]=p,t.push({o:r,k:i,r:a}))}else r[i]!==p&&(r[i]=n.call(r,i,o))}return r})(s,e,new Set,n);r=t(r);let a=0;for(;a<e.length;){const{o:s,k:r,r:i}=e[a++];s[r]=n.call(s,r,t(i))}}return n.call({"":r},"",r)},x=(e,t,s)=>{const n=w,r=new Map,a=[],i=[];let c=+m(r,a,n.call({"":e},"",e)),o=!c;for(;c<a.length;)o=!0,i[c]=u(a[c++],l,s);return"["+i.join(",")+"]";function l(e,t){if(o)return o=!o,t;const s=n.call(this,e,t);switch(typeof s){case f:if(null===s)return s;case y:return r.get(s)||m(r,a,s)}return s}},{isView:v}=ArrayBuffer,q=e=>{const[t,s]=b(e);return"null"===t?null:"generic"===t?s:"bytearray"===t?new Uint8Array(e).buffer:"memoryview"===t?new Uint8Array(e):e},S=async e=>{if(!e)throw new SyntaxError("The storage name must be defined");const t=new c(`@pyscript/${e}`),s=new Map;await t.sync();for(const[e,n]of t.entries())s.set(e,q(n));const n=()=>{s.clear(),t.clear()},r=async()=>{await t.sync()};return new Proxy(s,{ownKeys:e=>[...e.keys()],has:(e,t)=>e.has(t),get:(e,t)=>"clear"===t?n:"sync"===t?r:e.get(t),set:(e,s,n)=>(e.set(s,n),t.set(s,(e=>{if(null==e)return x(["null",0]);switch(typeof e){case"object":if(v(e))return x(["memoryview",[...e]]);if(e instanceof ArrayBuffer)return x(["bytearray",[...new Uint8Array(e)]]);case"string":case"number":case"boolean":return x(["generic",e]);default:throw new TypeError(`Unexpected value: ${String(e)}`)}})(n)),!0),deleteProperty:(e,s)=>(e.has(s)&&(e.delete(s),t.delete(s)),!0)})};export{S as storage};
2
2
  //# sourceMappingURL=storage.js.map