@@ -24,7 +24,9 @@ const loadPyodideInstance = async () => {
24
24
stderr : ( x : string ) => console . error ( x )
25
25
} )
26
26
pyodide = p
27
- await pyodide . loadPackage ( [ 'numpy' ] )
27
+ await pyodide . loadPackage ( [ 'numpy' , 'micropip' ] )
28
+ const micropip = pyodide . pyimport ( 'micropip' )
29
+ await micropip . install ( 'stanio' )
28
30
return pyodide
29
31
} else {
30
32
return pyodide
@@ -53,29 +55,9 @@ const DataPyFileEditor: FunctionComponent<Props> = ({fileName, fileContent, onSa
53
55
54
56
// We serialize the data object to json string in the python script
55
57
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'
77
59
script += 'import json\n'
78
- script += 'data = json.dumps(_sp_serialize( data) )\n'
60
+ script += 'data = stanio.dump_stan_json( data)\n'
79
61
pyodide . runPython ( script , { globals} )
80
62
81
63
if ( setData ) {
0 commit comments