0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
- 0, /* @tp_iternexr@ */
+ 0, /* @tp_iternext@ */
keydata_pymethods, /* @tp_methods@ */
0, /* @tp_members@ */
keydata_pygetset, /* @tp_getset@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
- 0, /* @tp_iternexr@ */
+ 0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
keydatabin_pygetset, /* @tp_getset@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
- 0, /* @tp_iternexr@ */
+ 0, /* @tp_iternext@ */
keydataenc_pymethods, /* @tp_methods@ */
0, /* @tp_members@ */
keydataenc_pygetset, /* @tp_getset@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
- 0, /* @tp_iternexr@ */
+ 0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
keydatamp_pygetset, /* @tp_getset@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
- 0, /* @tp_iternexr@ */
+ 0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
keydatastr_pygetset, /* @tp_getset@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
- 0, /* @tp_iternexr@ */
+ 0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
keydataec_pygetset, /* @tp_getset@ */
return ((PyObject *)me);
}
-static PyObject *subkeyiter_next(PyObject *me)
+static PyObject *subkeyiter_pynext(PyObject *me)
{
const char *tag;
if (!key_nextsubkey(SUBKEYITER_I(me), &tag, 0))
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
PyObject_SelfIter, /* @tp_iter@ */
- subkeyiter_next, /* @tp_iternexr@ */
+ subkeyiter_pynext, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
key_data *kd = 0;
static char *kwlist[] = { "subkeys", 0 };
- Py_INCREF(arg); Py_INCREF(kw);
+ Py_XINCREF(arg); Py_XINCREF(kw);
if (!PyArg_ParseTupleAndKeywords(arg, kw, "|O:new", kwlist, &sub))
goto end;
kd = key_newstruct();
}
static PyMappingMethods keydatastruct_pymapping = {
- 0, /* @mp_length@ */
+ gmap_pysize, /* @mp_length@ */
keydatastruct_pylookup, /* @mp_subscript@ */
- keydatastruct_pystore, /* @mp_ass_subscript@ */
+ keydatastruct_pystore /* @mp_ass_subscript@ */
};
static PyTypeObject keydatastruct_pytype_skel = {
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
subkeyiter_make, /* @tp_iter@ */
- 0, /* @tp_iternexr@ */
- 0, /* @tp_methods@ */
+ 0, /* @tp_iternext@ */
+ gmap_pymethods, /* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_base@ */
return ((PyObject *)me);
}
-static PyObject *keyattriter_next(PyObject *me)
+static PyObject *keyattriter_pynext(PyObject *me)
{
const char *name;
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
PyObject_SelfIter, /* @tp_iter@ */
- keyattriter_next, /* @tp_iternexr@ */
+ keyattriter_pynext, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
}
static PyMappingMethods keyattrs_pymapping = {
- 0,
- keyattrs_pylookup,
- keyattrs_pystore
+ gmap_pysize, /* @mp_length@ */
+ keyattrs_pylookup, /* @mp_subscript@ */
+ keyattrs_pystore /* @mp_ass_subscript@ */
};
static PyTypeObject keyattrs_pytype_skel = {
0, /* @tp_compare@ */
0, /* @tp_repr@ */
0, /* @tp_as_number@ */
- 0, /* @tp_as_sequence@ */
+ &gmap_pysequence, /* @tp_as_sequence@ */
&keyattrs_pymapping, /* @tp_as_mapping@ */
0, /* @tp_hash@ */
0, /* @tp_call@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
keyattriter_make, /* @tp_iter@ */
- 0, /* @tp_iternexr@ */
- 0, /* @tp_methods@ */
+ 0, /* @tp_iternext@ */
+ gmap_pymethods, /* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_base@ */
static PyObject *kget_id(PyObject *me, void *hunoz)
{ return (getu32(KEY_K(me)->id)); }
+static PyObject *kget_file(PyObject *me, void *hunoz)
+ { RETURN_OBJ(KEY_KFOBJ(me)); }
static PyObject *kget_type(PyObject *me, void *hunoz)
{ return (PyString_FromString(KEY_K(me)->type)); }
static PyObject *kget_exptime(PyObject *me, void *hunoz)
static int kset_data(PyObject *me, PyObject *x, void *hunoz)
{
int err;
+
+ if (!x) NIERR("__del__");
if (!KEYDATA_PYCHECK(x)) TYERR("expected KeyData object");
if ((err = key_setkeydata(KEY_KF(me), KEY_K(me), KEYDATA_KD(x))) != 0)
KEYERR(err);
int err;
char *tag;
- if (x == Py_None) tag = 0;
+ if (!x || x == Py_None) tag = 0;
else if ((tag = PyString_AsString(x)) == 0) goto end;
if ((err = key_settag(KEY_KF(me), KEY_K(me), tag)) != 0) KEYERR(err);
return (0);
int err;
char *c;
- if (x == Py_None) c = 0;
+ if (!x || x == Py_None) c = 0;
else if ((c = PyString_AsString(x)) == 0) goto end;
if ((err = key_setcomment(KEY_KF(me), KEY_K(me), c)) != 0) KEYERR(err);
return (0);
static PyGetSetDef key_pygetset[] = {
#define GETSETNAME(op, name) k##op##_##name
+ GET (file, "KEY.file -> KF")
GET (id, "KEY.id -> ID")
GETSET(tag, "KEY.tag -> TAG")
GET (type, "KEY.type -> TYPE")
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
- 0, /* @tp_iternexr@ */
+ 0, /* @tp_iternext@ */
key_pymethods, /* @tp_methods@ */
0, /* @tp_members@ */
key_pygetset, /* @tp_getset@ */
return ((PyObject *)me);
}
-static PyObject *keyiter_next(PyObject *me)
+static PyObject *keyiter_pynext(PyObject *me)
{
key *k;
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
PyObject_SelfIter, /* @tp_iter@ */
- keyiter_next, /* @tp_iternexr@ */
+ keyiter_pynext, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_compare@ */
0, /* @tp_repr@ */
0, /* @tp_as_number@ */
- 0, /* @tp_as_sequence@ */
+ &gmap_pysequence, /* @tp_as_sequence@ */
&keyfile_pymapping, /* @tp_as_mapping@ */
0, /* @tp_hash@ */
0, /* @tp_call@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
keyiter_new, /* @tp_iter@ */
- 0, /* @tp_iternexr@ */
+ 0, /* @tp_iternext@ */
keyfile_pymethods, /* @tp_methods@ */
0, /* @tp_members@ */
keyfile_pygetset, /* @tp_getset@ */