PyObject* PyExc_CommandExecutionError;
PyObject* PyExc_DependencyError;
+PyObject* PyExc_CheckError;
+PyObject* PyExc_CheckFileVerificationError;
+
static PyObject* _pakfire_native_arch(void) {
const char* arch = pakfire_arch_native();
if (!arch)
Py_INCREF(PyExc_DependencyError);
PyModule_AddObject(module, "DependencyError", PyExc_DependencyError);
+ // Check Exceptions
+
+ // CheckError
+ PyExc_CheckError = PyErr_NewException("_pakfire.CheckError", NULL, NULL);
+ Py_INCREF(PyExc_CheckError);
+ if (PyModule_AddObject(module, "CheckError", PyExc_CheckError) < 0) {
+ Py_XDECREF(PyExc_CheckError);
+ Py_CLEAR(PyExc_CheckError);
+ goto ERROR;
+ }
+
+ // CheckFileVerificationError based on CheckError
+ PyExc_CheckFileVerificationError = PyErr_NewExceptionWithDoc(
+ "_pakfire.CheckFileVerificationError",
+ "The file verification process failed",
+ PyExc_CheckError,
+ NULL
+ );
+ Py_INCREF(PyExc_CheckFileVerificationError);
+ if (PyModule_AddObject(module, "CheckFileVerificationError", PyExc_CheckFileVerificationError) < 0) {
+ Py_XDECREF(PyExc_CheckFileVerificationError);
+ Py_CLEAR(PyExc_CheckFileVerificationError);
+ goto ERROR;
+ }
+
// Add digest constants
if (PyModule_AddIntMacro(module, PAKFIRE_DIGEST_SHA512))
return NULL;
PyModule_AddObject(module, "Solution", (PyObject *)&SolutionType);
return module;
+
+ERROR:
+ Py_DECREF(module);
+
+ return NULL;
}