pyConvertBackDynamic function
Convers a python object back to a dart representation
Implementation
Object? pyConvertBackDynamic(Pointer<PyObject> result) {
if (result == nullptr) {
if (pyErrOccurred()) {
dartpyc.PyErr_Print();
throw UnimplementedError('Python error occurred');
}
return null;
}
if (result == dartpyc.Py_None) {
dartpyc.Py_DecRef(result);
return null;
} else if (result.isBool) {
if (result == dartpyc.Py_True) {
dartpyc.Py_DecRef(result);
return true;
}
dartpyc.Py_DecRef(result);
return false;
} else {
try {
final res = result.asNum;
dartpyc.Py_DecRef(result);
return res;
} on DartPyException catch (_) {
dartpyc.PyErr_Clear();
try {
final res = result.asString;
dartpyc.Py_DecRef(result);
return res;
} on DartPyException catch (_) {
dartpyc.PyErr_Clear();
throw DartPyException(
'Could not figure out the type of the object to convert back to: not a known primitive');
}
}
}
}