static PyObject* pyalpm_trans_commit(PyObject *self, PyObject *args) { alpm_handle_t *handle = ALPM_HANDLE(self); alpm_list_t *data = NULL; int ret; enum _alpm_errno_t err; PyObject *err_info = NULL; ret = alpm_trans_commit(handle, &data); if (ret == 0) Py_RETURN_NONE; if (ret != -1) { PyErr_Format(PyExc_RuntimeError, "unexpected return value %d from alpm_trans_commit()", ret); return NULL; } err = alpm_errno(handle); switch(err) { case ALPM_ERR_FILE_CONFLICTS: /* return the list of file conflicts in the exception */ err_info = alpmlist_to_pylist(data, pyobject_from_pmfileconflict); break; case ALPM_ERR_PKG_INVALID: case ALPM_ERR_PKG_INVALID_CHECKSUM: case ALPM_ERR_PKG_INVALID_SIG: case ALPM_ERR_DLT_INVALID: err_info = alpmlist_to_pylist(data, pyobject_from_string); break; default: break; } if (err_info) RET_ERR_DATA("transaction failed", err, err_info, NULL); else RET_ERR("transaction failed", err, NULL); }
static PyObject *pyalpm_trans_get_remove(PyObject *self, void *closure) { alpm_handle_t *handle = ALPM_HANDLE(self); alpm_list_t *to_remove; /* sanity check */ int flags = alpm_trans_get_flags(handle); if (flags == -1) RET_ERR("no transaction defined", alpm_errno(handle), NULL); to_remove = alpm_trans_get_remove(handle); return alpmlist_to_pylist(to_remove, pyalpm_package_from_pmpkg); }
static PyObject* pyalpm_pkg_compute_requiredby(PyObject *rawself, PyObject *args) { AlpmPackage *self = (AlpmPackage*)rawself; PyObject *pyresult; CHECK_IF_INITIALIZED(); { alpm_list_t *result = alpm_pkg_compute_requiredby(self->c_data); pyresult = alpmlist_to_pylist(result, pyobject_from_string); FREELIST(result); } return pyresult; }
static PyObject* pyalpm_trans_prepare(PyObject *self, PyObject *args) { alpm_handle_t *handle = ALPM_HANDLE(self); alpm_list_t *data; int ret = alpm_trans_prepare(handle, &data); if (ret == -1) { /* return the list of package conflicts in the exception */ PyObject *info = alpmlist_to_pylist(data, pyobject_from_pmdepmissing); if (!info) return NULL; RET_ERR_DATA("transaction preparation failed", alpm_errno(handle), info, NULL); } Py_RETURN_NONE; }
static PyObject* pyalpm_get_syncdbs(PyObject *self, PyObject *dummy) { alpm_handle_t *handle = ALPM_HANDLE(self); return alpmlist_to_pylist(alpm_get_syncdbs(handle), pyalpm_db_from_pmdb); }
/** Returns a Python list attribute */ static PyObject* _get_list_attribute(AlpmPackage *self, const struct list_getter *closure) { alpm_list_t *result = NULL; CHECK_IF_INITIALIZED(); result = closure->getter(self->c_data); return alpmlist_to_pylist(result, closure->item_converter); }