// modena_model_t instantiates the surrogate model modena_model_t *modena_model_new ( const char *modelId ) { // Initialize the Python Interpreter if(!Py_IsInitialized()) { Py_Initialize(); } // Initialize this module initlibmodena(); PyObject *args = PyTuple_New(0); PyObject *kw = Py_BuildValue("{s:s}", "modelId", modelId); PyObject *m = PyObject_Call((PyObject *) &modena_model_tType, args, kw); Py_DECREF(args); Py_DECREF(kw); if(!m){ Modena_PyErr_Print(); } return (modena_model_t *) m; }
modena_function_t *modena_function_new ( const char *functionId ) { // Initialize the Python Interpreter if(!Py_IsInitialized()) { Py_Initialize(); } // Initialize this module initlibmodena(); PyObject *args = PyTuple_New(0); PyObject *kw = Py_BuildValue("{s:s}", "functionId", functionId); PyObject *pNewObj = PyObject_Call ( (PyObject *) &modena_function_tType, args, kw ); Py_DECREF(args); Py_DECREF(kw); if(!pNewObj) { if(PyErr_ExceptionMatches(modena_DoesNotExist)) { PyErr_Clear(); PyObject *pRet = PyObject_CallMethod ( modena_SurrogateFunction, "exceptionLoad", "(z)", functionId ); if(!pRet){ Modena_PyErr_Print(); } int ret = PyInt_AsLong(pRet); Py_DECREF(pRet); modena_error_code = ret; return NULL; } else { Modena_PyErr_Print(); } } modena_function_t *self = (modena_function_t *) pNewObj; if(lt_dlinit()) { fprintf(stderr, "lt_dlinit: %s\n", lt_dlerror()); exit(1); } modena_function_load_library(self); return self; }