commit
df6b98fe6e
|
@ -143,6 +143,7 @@ void GlobalFunction::emit_cython_pxd(FileWriter& file) const {
|
||||||
"\"(";
|
"\"(";
|
||||||
argumentList(i).emit_cython_pxd(file, "", vector<string>());
|
argumentList(i).emit_cython_pxd(file, "", vector<string>());
|
||||||
file.oss << ")";
|
file.oss << ")";
|
||||||
|
file.oss << " except +";
|
||||||
file.oss << "\n";
|
file.oss << "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -206,16 +207,18 @@ void GlobalFunction::emit_cython_pyx(FileWriter& file) const {
|
||||||
|
|
||||||
/// Call corresponding cython function
|
/// Call corresponding cython function
|
||||||
file.oss << argumentList(i).pyx_convertEigenTypeAndStorageOrder(" ");
|
file.oss << argumentList(i).pyx_convertEigenTypeAndStorageOrder(" ");
|
||||||
string call = pyx_functionCall("", pxdName(), i);
|
// catch exception which indicates the parameters passed are incorrect.
|
||||||
if (!returnVals_[i].isVoid()) {
|
|
||||||
file.oss << " return_value = " << call << "\n";
|
|
||||||
file.oss << " return True, " << returnVals_[i].pyx_casting("return_value") << "\n";
|
|
||||||
} else {
|
|
||||||
file.oss << " " << call << "\n";
|
|
||||||
file.oss << " return True, None\n";
|
|
||||||
}
|
|
||||||
file.oss << " except:\n";
|
file.oss << " except:\n";
|
||||||
file.oss << " return False, None\n\n";
|
file.oss << " return False, None\n\n";
|
||||||
|
|
||||||
|
string call = pyx_functionCall("", pxdName(), i);
|
||||||
|
if (!returnVals_[i].isVoid()) {
|
||||||
|
file.oss << " return_value = " << call << "\n";
|
||||||
|
file.oss << " return True, " << returnVals_[i].pyx_casting("return_value") << "\n";
|
||||||
|
} else {
|
||||||
|
file.oss << " " << call << "\n";
|
||||||
|
file.oss << " return True, None\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
|
|
|
@ -145,7 +145,7 @@ cdef extern from "folder/path/to/Test.h":
|
||||||
|
|
||||||
|
|
||||||
cdef extern from "folder/path/to/Test.h" namespace "":
|
cdef extern from "folder/path/to/Test.h" namespace "":
|
||||||
VectorXd pxd_aGlobalFunction "aGlobalFunction"()
|
VectorXd pxd_aGlobalFunction "aGlobalFunction"() except +
|
||||||
cdef extern from "folder/path/to/Test.h" namespace "":
|
cdef extern from "folder/path/to/Test.h" namespace "":
|
||||||
VectorXd pxd_overloadedGlobalFunction "overloadedGlobalFunction"(int a)
|
VectorXd pxd_overloadedGlobalFunction "overloadedGlobalFunction"(int a) except +
|
||||||
VectorXd pxd_overloadedGlobalFunction "overloadedGlobalFunction"(int a, double b)
|
VectorXd pxd_overloadedGlobalFunction "overloadedGlobalFunction"(int a, double b) except +
|
||||||
|
|
|
@ -464,11 +464,11 @@ def overloadedGlobalFunction_0(args, kwargs):
|
||||||
try:
|
try:
|
||||||
__params = process_args(['a'], args, kwargs)
|
__params = process_args(['a'], args, kwargs)
|
||||||
a = <int>(__params[0])
|
a = <int>(__params[0])
|
||||||
return_value = pxd_overloadedGlobalFunction(a)
|
|
||||||
return True, ndarray_copy(return_value).squeeze()
|
|
||||||
except:
|
except:
|
||||||
return False, None
|
return False, None
|
||||||
|
|
||||||
|
return_value = pxd_overloadedGlobalFunction(a)
|
||||||
|
return True, ndarray_copy(return_value).squeeze()
|
||||||
def overloadedGlobalFunction_1(args, kwargs):
|
def overloadedGlobalFunction_1(args, kwargs):
|
||||||
cdef list __params
|
cdef list __params
|
||||||
cdef VectorXd return_value
|
cdef VectorXd return_value
|
||||||
|
@ -476,8 +476,8 @@ def overloadedGlobalFunction_1(args, kwargs):
|
||||||
__params = process_args(['a', 'b'], args, kwargs)
|
__params = process_args(['a', 'b'], args, kwargs)
|
||||||
a = <int>(__params[0])
|
a = <int>(__params[0])
|
||||||
b = <double>(__params[1])
|
b = <double>(__params[1])
|
||||||
return_value = pxd_overloadedGlobalFunction(a, b)
|
|
||||||
return True, ndarray_copy(return_value).squeeze()
|
|
||||||
except:
|
except:
|
||||||
return False, None
|
return False, None
|
||||||
|
|
||||||
|
return_value = pxd_overloadedGlobalFunction(a, b)
|
||||||
|
return True, ndarray_copy(return_value).squeeze()
|
||||||
|
|
Loading…
Reference in New Issue