static PyObject * modify_excl_incl(_SackObject *self, PyObject *o) { DnfSack *sack = self->sack; auto pset = pyseq_to_packageset(o, sack); if (!pset) return NULL; sackExcludeIncludeFunc(sack, pset.get()); Py_RETURN_NONE; }
static PyObject * add_includes(_SackObject *self, PyObject *seq) { HifSack *sack = self->sack; HifPackageSet *pset = pyseq_to_packageset(seq, sack); if (pset == NULL) return NULL; hif_sack_add_includes(sack, pset); g_object_unref(pset); Py_RETURN_NONE; }
static PyObject * add_protected(_GoalObject *self, PyObject *seq) { HyGoal goal = self->goal; DnfPackageSet *pset = pyseq_to_packageset(seq, goal->sack); if (pset == NULL) return NULL; dnf_goal_add_protected(goal, pset); g_object_unref(pset); Py_RETURN_NONE; }
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 * set_modules_enabled_by_pkgset(_SackObject *self, PyObject *args, PyObject *kwds) { const char *kwlist[] = {"module_container", "pkgs", NULL}; PyObject * pyModuleContainer; PyObject * pyPkgSet; if (!PyArg_ParseTupleAndKeywords(args, kwds, "OO", (char**) kwlist, &pyModuleContainer, &pyPkgSet)) return NULL; auto pset = pyseq_to_packageset(pyPkgSet, self->sack); if (!pset) { return NULL; } auto swigContainer = reinterpret_cast< ModulePackageContainerPyObject * >( PyObject_GetAttrString(pyModuleContainer, "this")); auto moduleContainer = swigContainer->ptr; auto modules = moduleContainer->requiresModuleEnablement(*pset.get()); for (auto module: modules) { moduleContainer->enable(module->getName(), module->getStream()); } Py_RETURN_NONE; }