static PyObject * detect_arch(PyObject *unused, PyObject *args) { char *arch; if (ret2e(hy_detect_arch(&arch), "Failed detecting architecture.")) return NULL; return PyString_FromString(arch); }
static PyObject * set(_SelectorObject *self, PyObject *args) { key_t keyname; int cmp_type; PyObject *match; if (!PyArg_ParseTuple(args, "iiO", &keyname, &cmp_type, &match)) return NULL; if (keyname == HY_PKG) { const DnfPackageSet *pset; if (queryObject_Check(match)) { HyQuery target = queryFromPyObject(match); pset = hy_query_run_set(target); } else if (PyList_Check(match)) { DnfSack *sack = sackFromPyObject(self->sack); assert(sack); pset = pyseq_to_packageset(match, sack); } else { (ret2e(DNF_ERROR_BAD_SELECTOR, "Invalid value type: Only List and Query supported")); return NULL; } if (ret2e(hy_selector_pkg_set(self->sltr, keyname, cmp_type, pset), "Invalid Selector spec." )) { return NULL; } } else { const char *cmatch; PyObject *tmp_py_str = NULL; cmatch = pycomp_get_string(match, &tmp_py_str); if (ret2e(hy_selector_set(self->sltr, keyname, cmp_type, cmatch), "Invalid Selector spec." )) return NULL; } Py_RETURN_NONE; }
static PyObject * write_debugdata(_GoalObject *self, PyObject *dir_str) { PyObject *tmp_py_str = NULL; const char *dir = pycomp_get_string(dir_str, &tmp_py_str); if (dir == NULL) { Py_XDECREF(tmp_py_str); return NULL; } int ret = hy_goal_write_debugdata(self->goal, dir); Py_XDECREF(tmp_py_str); if (ret2e(ret, "write_debugdata() failed")) return NULL; Py_RETURN_NONE; }
static PyObject * split_nevra(PyObject *unused, PyObject *nevra_o) { PyObject *tmp_py_str = NULL; const char *nevra = pycomp_get_string(nevra_o, &tmp_py_str); if (nevra == NULL) { Py_XDECREF(tmp_py_str); return NULL; } long epoch; char *name, *version, *release, *arch; int split_nevra_ret = hy_split_nevra(nevra, &name, &epoch, &version, &release, &arch); Py_XDECREF(tmp_py_str); // release memory after unicode string conversion if (ret2e(split_nevra_ret, "Failed parsing NEVRA.")) return NULL; PyObject *ret = Py_BuildValue("slsss", name, epoch, version, release, arch); if (ret == NULL) return NULL; return ret; }