106 if (result == NULL) {
126 return Py_BuildValue(
"i", hdrNum);
141 return Py_BuildValue(
"i", rc);
152 PyObject *TagN = NULL;
156 char * kwlist[] = {
"tag",
"type",
"pattern", NULL};
158 if (!PyArg_ParseTupleAndKeywords(args, kwds,
"Ois:Pattern", kwlist,
159 &TagN, &type, &pattern))
163 PyErr_SetString(PyExc_TypeError,
"unknown tag type");
181 {
"next", (PyCFunction)
rpmmi_Next, METH_NOARGS,
183 - Retrieve next header that matches. Iterate directly in python if possible.\n" },
188 {
"pattern", (PyCFunction)
rpmmi_Pattern, METH_VARARGS|METH_KEYWORDS,
189 "mi.pattern(TagN, mire_type, pattern)\n\ 190 - Set a secondary match pattern on tags from retrieved header.\n" },
210 return PyObject_GenericGetAttr(o, n);
216 return PyObject_GenericSetAttr(o, n, v);
229 PyObject_HEAD_INIT(&PyType_Type)
251 #
if Py_TPFLAGS_HAVE_ITER
280 PyErr_SetString(
pyrpmError,
"out of memory creating rpmmiObject");
static PyObject * rpmmi_Pattern(rpmmiObject *s, PyObject *args, PyObject *kwds)
uint32_t rpmmiInstance(rpmmi mi)
Return header instance for current position of rpmdb iterator.
static PyObject * rpmmi_iternext(rpmmiObject *s)
rpmmiObject * rpmmi_Wrap(rpmmi mi)
static int rpmmi_setattro(PyObject *o, PyObject *n, PyObject *v)
struct rpmmiObject_s rpmmiObject
rpmmi rpmmiFree(rpmmi mi)
Destroy rpm database iterator.
static PyObject * rpmmi_Instance(rpmmiObject *s)
int rpmmiAddPattern(rpmmi mi, rpmTag tag, rpmMireMode mode, const char *pattern)
Add pattern to iterator selector.
static void rpmmi_dealloc(rpmmiObject *s)
static struct PyMethodDef rpmmi_methods[]
Header rpmmiNext(rpmmi mi)
Return next package header from iteration.
static PyObject * rpmmi_getattro(PyObject *o, PyObject *n)
Access RPM indices using Berkeley DB interface(s).
unsigned int rpmmiCount(rpmmi mi)
Return number of elements in rpm database iterator.
static PyObject * rpmmi_Next(rpmmiObject *s)
static PyObject * rpmmi_iter(rpmmiObject *s)
static PyObject * rpmmi_Count(rpmmiObject *s)