+++ /dev/null
-import "Vector"\r
-\r
-effect Python\r
- "Simantics/Python/Python"\r
- "org.simantics.pythonlink.PythonContext"\r
-\r
-class PythonCompatible a where\r
- setPythonVariable :: String -> a -> <Python, Proc> ()\r
- getPythonVariable :: String -> <Python, Proc> a\r
-\r
-importJava "org.simantics.pythonlink.NDArray" where\r
- data NDArray\r
- \r
- @JavaName "<init>"\r
- ndarray :: Vector Double -> NDArray\r
- @JavaName "<init>"\r
- ndarrayM :: Integer -> Integer -> Vector Double -> NDArray\r
- @JavaName "<init>"\r
- ndarrayN :: Vector Integer -> Vector Double -> NDArray\r
- \r
- @JavaName size\r
- ndarraySize :: NDArray -> Integer\r
- @JavaName dims\r
- ndarrayDims :: NDArray -> Vector Integer\r
- @JavaName getValues\r
- ndarrayValues :: NDArray -> Vector Double\r
- @JavaName getValue\r
- ndarrayElement :: NDArray -> Integer -> Double\r
- @JavaName getValue\r
- ndarrayElementM :: NDArray -> Integer -> Integer -> Double\r
- @JavaName getValue\r
- ndarrayElementN :: NDArray -> Vector Integer -> Double\r
- \r
- @JavaName toString\r
- ndarrayToString :: NDArray -> String\r
- @JavaName equals\r
- ndarrayEquals :: NDArray -> NDArray -> Boolean\r
-\r
-instance Show NDArray where\r
- show = ndarrayToString\r
-\r
-importJava "org.simantics.pythonlink.PythonContext" where\r
- data PythonContext\r
- \r
- @JavaName close\r
- closePythonContext :: PythonContext -> <Proc> ()\r
- \r
- executePythonStatement :: String -> <Python, Proc> ()\r
- \r
- setPythonIntegerVariable :: String -> Integer -> <Python, Proc> ()\r
- setPythonIntegerArrayVariable :: String -> Vector Integer -> <Python, Proc> ()\r
- setPythonDoubleVariable :: String -> Double -> <Python, Proc> ()\r
- setPythonDoubleArrayVariable :: String -> Vector Double -> <Python, Proc> ()\r
- setPythonStringVariable :: String -> String -> <Python, Proc> ()\r
- setPythonStringArrayVariable :: String -> Vector String -> <Python, Proc> ()\r
- setPythonNDArrayVariable :: String -> NDArray -> <Python, Proc> ()\r
- \r
- getPythonIntegerVariable :: String -> <Python, Proc> Integer\r
- getPythonIntegerArrayVariable :: String -> <Python, Proc> Vector Integer\r
- getPythonDoubleVariable :: String -> <Python, Proc> Double\r
- getPythonDoubleArrayVariable :: String -> <Python, Proc> Vector Double\r
- getPythonStringVariable :: String -> <Python, Proc> String\r
- getPythonStringArrayVariable :: String -> <Python, Proc> Vector String\r
- getPythonNDArrayVariable :: String -> <Python, Proc> NDArray\r
- \r
-importJava "org.simantics.pythonlink.Python" where\r
- openPythonContext :: () -> <Proc> PythonContext\r
- \r
- runPythonF :: (() -> <Python, Proc> a) -> <Proc> a\r
- runWithPythonContextF :: PythonContext -> (() -> <Python, Proc> a) -> <Proc> a\r
-\r
-runPython :: (<Python, Proc> a) -> <Proc> a\r
-runPython v = runPythonF (\_ -> v)\r
-\r
-runWithPythonContext :: PythonContext -> (<Python, Proc> a) -> <Proc> a\r
-runWithPythonContext python v = runWithPythonContextF python (\_ -> v) \r
-\r
-instance PythonCompatible Double where\r
- setPythonVariable = setPythonDoubleVariable\r
- getPythonVariable = getPythonDoubleVariable\r
- \r
-instance PythonCompatible (Vector Double) where\r
- setPythonVariable = setPythonDoubleArrayVariable\r
- getPythonVariable = getPythonDoubleArrayVariable\r
- \r
-instance PythonCompatible Integer where\r
- setPythonVariable = setPythonIntegerVariable\r
- getPythonVariable = getPythonIntegerVariable\r
- \r
-instance PythonCompatible (Vector Integer) where\r
- setPythonVariable = setPythonIntegerArrayVariable\r
- getPythonVariable = getPythonIntegerArrayVariable\r
- \r
-instance PythonCompatible String where\r
- setPythonVariable = setPythonStringVariable\r
- getPythonVariable = getPythonStringVariable\r
- \r
-instance PythonCompatible (Vector String) where\r
- setPythonVariable = setPythonStringArrayVariable\r
- getPythonVariable = getPythonStringArrayVariable\r
- \r
-instance PythonCompatible NDArray where\r
- setPythonVariable = setPythonNDArrayVariable\r
- getPythonVariable = getPythonNDArrayVariable\r