117 PyObject *TagN = NULL;
121 char * kwlist[] = {
"tagNumber",
"key",
"len", NULL};
123 if (!PyArg_ParseTupleAndKeywords(args, kwds,
"|Ozi", kwlist,
128 PyErr_SetString(PyExc_TypeError,
"unknown tag type");
142 {
"match", (PyCFunction)
rpmdb_Match, METH_VARARGS|METH_KEYWORDS,
143 "db.match([TagN, [key, [len]]]) -> mi\n\
144 - Create an rpm db match iterator.\n" },
180 if (!PyInt_Check(key)) {
181 PyErr_SetString(PyExc_TypeError,
"integer expected");
185 offset = (int) PyInt_AsLong(key);
190 PyErr_SetString(
pyrpmError,
"cannot read rpmdb entry");
223 return PyObject_GenericGetAttr(o, n);
229 return PyObject_GenericSetAttr(o, n, v);
242 PyObject_HEAD_INIT(&PyType_Type)
264 #
if Py_TPFLAGS_HAVE_ITER
288 #ifdef _LEGACY_BINDINGS_TOO
297 rpmOpenDB( PyObject *
self, PyObject * args, PyObject * kwds) {
301 char * kwlist[] = {
"forWrite",
"rootdir", NULL};
303 if (!PyArg_ParseTupleAndKeywords(args, kwds,
"|is", kwlist,
310 if (
rpmdbOpen(root, &o->
db, forWrite ? O_RDWR | O_CREAT: O_RDONLY, 0644)) {
311 char * errmsg =
"cannot open database in %s";
312 char * errstr = NULL;
317 errsize = strlen(errmsg) + *root ==
'\0' ? 15 : strlen(root);
320 snprintf(errstr, errsize, errmsg, *root ==
'\0' ?
"/var/lib/rpm" : root);
333 rebuildDB ( PyObject *
self, PyObject * args, PyObject * kwds)
336 char * kwlist[] = {
"rootdir", NULL};
338 if (!PyArg_ParseTupleAndKeywords(args, kwds,
"s", kwlist, &rootDir))
341 return Py_BuildValue(
"i",
rpmdbRebuild(rootDir, NULL, NULL));