Skip to content

Commit 1caa041

Browse files
committed
Use stanio for data.py
1 parent 1c4e00e commit 1caa041

File tree

2 files changed

+6
-24
lines changed

2 files changed

+6
-24
lines changed

gui/src/app/prototypes/AnalysisPyPrototype/AnalysisPyFileEditor.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ const AnalysisPyFileEditor: FunctionComponent<Props> = ({fileName, fileContent,
7171

7272
// here's where we can pass in globals
7373
const globals = pyodide.toPy({ _sp_example_global: 5 });
74-
let script = fileContent
74+
const script = fileContent
7575
pyodide.runPython(script, {globals})
7676
setStatus('completed')
7777
}

gui/src/app/prototypes/DataPyPrototype/DataPyFileEditor.tsx

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ const loadPyodideInstance = async () => {
2424
stderr: (x: string) => console.error(x)
2525
})
2626
pyodide = p
27-
await pyodide.loadPackage(['numpy'])
27+
await pyodide.loadPackage(['numpy', 'micropip'])
28+
const micropip = pyodide.pyimport('micropip')
29+
await micropip.install('stanio')
2830
return pyodide
2931
} else {
3032
return pyodide
@@ -53,29 +55,9 @@ const DataPyFileEditor: FunctionComponent<Props> = ({fileName, fileContent, onSa
5355

5456
// We serialize the data object to json string in the python script
5557
script += '\n'
56-
script += 'import numpy as np\n'
57-
script += 'def _sp_serialize(x):\n'
58-
script += ' if isinstance(x, dict):\n'
59-
script += ' ret = {}\n'
60-
script += ' for key in x:\n'
61-
script += ' ret[key] = _sp_serialize(x[key])\n'
62-
script += ' return ret\n'
63-
script += ' elif isinstance(x, list):\n'
64-
script += ' ret = []\n'
65-
script += ' for val in x:\n'
66-
script += ' ret.append(_sp_serialize(val))\n'
67-
script += ' return ret\n'
68-
script += ' elif isinstance(x, tuple):\n'
69-
script += ' ret = []\n'
70-
script += ' for val in x:\n'
71-
script += ' ret.append(_sp_serialize(val))\n'
72-
script += ' return ret\n'
73-
script += ' elif isinstance(x, np.ndarray):\n'
74-
script += ' return _sp_serialize(x.tolist())\n'
75-
script += ' else:\n'
76-
script += ' return x\n'
58+
script += 'import stanio\n'
7759
script += 'import json\n'
78-
script += 'data = json.dumps(_sp_serialize(data))\n'
60+
script += 'data = stanio.dump_stan_json(data)\n'
7961
pyodide.runPython(script, {globals})
8062

8163
if (setData) {

0 commit comments

Comments
 (0)