114 PyObject *TagN = NULL;
118 char * kwlist[] = {
"tagNumber",
"key",
"len", NULL};
120 if (!PyArg_ParseTupleAndKeywords(args, kwds,
"|Ozi", kwlist,
125 PyErr_SetString(PyExc_TypeError,
"unknown tag type");
139 {
"match", (PyCFunction)
rpmdb_Match, METH_VARARGS|METH_KEYWORDS,
140 "db.match([TagN, [key, [len]]]) -> mi\n\
141 - Create an rpm db match iterator.\n" },
177 if (!PyInt_Check(key)) {
178 PyErr_SetString(PyExc_TypeError,
"integer expected");
182 offset = (int) PyInt_AsLong(key);
187 PyErr_SetString(
pyrpmError,
"cannot read rpmdb entry");
219 return PyObject_GenericGetAttr(o, n);
225 return PyObject_GenericSetAttr(o, n, v);
238 PyObject_HEAD_INIT(&PyType_Type)
260 #
if Py_TPFLAGS_HAVE_ITER
284 #ifdef _LEGACY_BINDINGS_TOO
293 rpmOpenDB( PyObject *
self, PyObject * args, PyObject * kwds) {
297 char * kwlist[] = {
"forWrite",
"rootdir", NULL};
299 if (!PyArg_ParseTupleAndKeywords(args, kwds,
"|is", kwlist,
306 if (
rpmdbOpen(root, &o->
db, forWrite ? O_RDWR | O_CREAT: O_RDONLY, 0644)) {
307 char * errmsg =
"cannot open database in %s";
308 char * errstr = NULL;
313 errsize = strlen(errmsg) + *root ==
'\0' ? 15 : strlen(root);
316 snprintf(errstr, errsize, errmsg, *root ==
'\0' ?
"/var/lib/rpm" : root);
329 rebuildDB ( PyObject *
self, PyObject * args, PyObject * kwds)
332 char * kwlist[] = {
"rootdir", NULL};
334 if (!PyArg_ParseTupleAndKeywords(args, kwds,
"s", kwlist, &rootDir))
337 return Py_BuildValue(
"i",
rpmdbRebuild(rootDir, NULL, NULL));