return (rc);
}
-static PyMethodDef keyexc_pymethods[] = {
+static const PyMethodDef keyexc_pymethods[] = {
#define METHNAME(func) kxmeth_##func
- METH (__init__, "KeyError(CODE)")
- METH (__str__, "E.__str__() -> STRING")
+ METH (__init__, "KeyError(CODE)")
+ METH (__str__, "E.__str__() -> STRING")
#undef METHNAME
{ 0 }
};
return (rc);
}
-static PyObject *meth__KeyData_readflags(PyObject *me, PyObject *arg)
+static PyObject *kdmeth_readflags(PyObject *me, PyObject *arg)
{
const char *p;
char *end;
PyObject *rc = 0;
int err;
- if (!PyArg_ParseTuple(arg, "Os:key_readflags", &me, &p))
- goto end;
- if ((err = key_readflags(p, &end, &f, &m)) != 0)
- KEYERR(err);
+ if (!PyArg_ParseTuple(arg, "s:readflags", &p)) goto end;
+ if ((err = key_readflags(p, &end, &f, &m)) != 0) KEYERR(err);
rc = Py_BuildValue("(NNs)", getulong(f), getulong(m), end);
end:
return (rc);
}
-static PyObject *meth__KeyData_writeflags(PyObject *me, PyObject *arg)
+static PyObject *kdmeth_writeflags(PyObject *me, PyObject *arg)
{
dstr d = DSTR_INIT;
PyObject *rc;
unsigned f;
- if (!PyArg_ParseTuple(arg, "OO&:key_writeflags", &me, convuint, &f))
- return (0);
+ if (!PyArg_ParseTuple(arg, "O&:key_writeflags", convuint, &f)) return (0);
key_writeflags(f, &d);
rc = PyString_FromStringAndSize(d.buf, d.len);
dstr_destroy(&d);
return (rc);
}
-static PyObject *meth__KeyData_read(PyObject *me, PyObject *arg)
+static PyObject *kdmeth_read(PyObject *me, PyObject *arg)
{
const char *p;
char *end;
key_data *kd;
PyObject *rc = 0;
- if (!PyArg_ParseTuple(arg, "Os:read", &me, &p))
- goto end;
- if ((kd = key_read(p, &end)) == 0)
- KEYERR(KERR_MALFORMED);
+ if (!PyArg_ParseTuple(arg, "s:read", &p)) goto end;
+ if ((kd = key_read(p, &end)) == 0) KEYERR(KERR_MALFORMED);
rc = Py_BuildValue("(Ns)", keydata_pywrap(kd), end);
end:
return (rc);
}
-static PyObject *meth__KeyData_decode(PyObject *me, PyObject *arg)
+static PyObject *kdmeth_decode(PyObject *me, PyObject *arg)
{
const char *p;
Py_ssize_t n;
key_data *kd;
PyObject *rc = 0;
- if (!PyArg_ParseTuple(arg, "Os#:decode", &me, &p, &n))
- goto end;
- if ((kd = key_decode(p, n)) == 0)
- KEYERR(KERR_MALFORMED);
+ if (!PyArg_ParseTuple(arg, "s#:decode", &p, &n)) goto end;
+ if ((kd = key_decode(p, n)) == 0) KEYERR(KERR_MALFORMED);
rc = keydata_pywrap(kd);
end:
return (rc);
static PyObject *kdget_flags(PyObject *me, void *hunoz)
{ return (getulong(KEYDATA_KD(me)->e)); }
-static PyMethodDef keydata_pymethods[] = {
+static const PyMethodDef keydata_pymethods[] = {
#define METHNAME(func) kdmeth_##func
- METH (matchp, "KD.matchp(FILTER) -> BOOL")
- METH (split, "KD.split()")
- KWMETH(write, "KD.write([filter = <any>]) -> STRING")
- KWMETH(encode, "KD.encode([filter = <any>]) -> BYTES")
- KWMETH(copy, "KD.copy([filter = <any>]) -> KD")
- METH (plock, "KD.plock(TAG) -> ENCRYPTED-KD")
- METH (lock, "KD.lock(KEY) -> ENCRYPTED-KD")
+ METH (matchp, "KD.matchp(FILTER) -> BOOL")
+ METH (split, "KD.split()")
+ KWMETH(write, "KD.write([filter = <any>]) -> STRING")
+ KWMETH(encode, "KD.encode([filter = <any>]) -> BYTES")
+ KWMETH(copy, "KD.copy([filter = <any>]) -> KD")
+ METH (plock, "KD.plock(TAG) -> ENCRYPTED-KD")
+ METH (lock, "KD.lock(KEY) -> ENCRYPTED-KD")
+ SMTH (readflags, "readflags(STRING) -> (FLAGS, MASK, REST)")
+ SMTH (writeflags, "writeflags(FLAGS) -> STRING")
+ SMTH (read, "read(STRING) -> (KD, REST)")
+ SMTH (decode, "decode(BYTES) -> KD")
#undef METHNAME
{ 0 }
};
-static PyGetSetDef keydata_pygetset[] = {
+static const PyGetSetDef keydata_pygetset[] = {
#define GETSETNAME(op, name) kd##op##_##name
- GET (flags, "KD.flags -> FLAGS")
+ GET (flags, "KD.flags -> FLAGS")
#undef GETSETNAME
{ 0 }
};
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"Key data base class.",
+ "Key data base class.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_iternext@ */
- keydata_pymethods, /* @tp_methods@ */
+ PYMETHODS(keydata), /* @tp_methods@ */
0, /* @tp_members@ */
- keydata_pygetset, /* @tp_getset@ */
+ PYGETSET(keydata), /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
{ return (bytestring_pywrap(KEYDATA_KD(me)->u.k.k,
KEYDATA_KD(me)->u.k.sz)); }
-static PyGetSetDef keydatabin_pygetset[] = {
+static const PyGetSetDef keydatabin_pygetset[] = {
#define GETSETNAME(op, name) kdb##op##_##name
- GET (bin, "KD.bin -> BYTES")
+ GET (bin, "KD.bin -> BYTES")
#undef GETSETNAME
{ 0 }
};
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"KeyDataBinary(KEY, [flags = 0]): key data for binary keys.",
+ "KeyDataBinary(KEY, [flags = 0]): key data for binary keys.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
- keydatabin_pygetset, /* @tp_getset@ */
+ PYGETSET(keydatabin), /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
#define kdeget_ct kdbget_bin
-static PyMethodDef keydataenc_pymethods[] = {
+static const PyMethodDef keydataenc_pymethods[] = {
#define METHNAME(func) kdemeth_##func
- METH (plock, "KD.plock(TAG) -> ENCRYPTED-KD")
- METH (lock, "KD.lock(KEY) -> ENCRYPTED-KD")
- METH (punlock, "KD.punlock(TAG) -> KD")
- METH (unlock, "KD.unlock(KEY) -> KD")
+ METH (plock, "KD.plock(TAG) -> ENCRYPTED-KD")
+ METH (lock, "KD.lock(KEY) -> ENCRYPTED-KD")
+ METH (punlock, "KD.punlock(TAG) -> KD")
+ METH (unlock, "KD.unlock(KEY) -> KD")
#undef METHNAME
{ 0 }
};
-static PyGetSetDef keydataenc_pygetset[] = {
+static const PyGetSetDef keydataenc_pygetset[] = {
#define GETSETNAME(op, name) kde##op##_##name
- GET (ct, "KD.ct -> BYTES")
+ GET (ct, "KD.ct -> BYTES")
#undef GETSETNAME
{ 0 }
};
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"KeyDataEncrypted(KEY, [flags = 0]): key data for encrypted keys.",
+ "KeyDataEncrypted(KEY, [flags = 0]): key data for encrypted keys.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_iternext@ */
- keydataenc_pymethods, /* @tp_methods@ */
+ PYMETHODS(keydataenc), /* @tp_methods@ */
0, /* @tp_members@ */
- keydataenc_pygetset, /* @tp_getset@ */
+ PYGETSET(keydataenc), /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
static PyObject *kdmget_mp(PyObject *me, void *hunoz)
{ return (mp_pywrap(MP_COPY(KEYDATA_KD(me)->u.m))); }
-static PyGetSetDef keydatamp_pygetset[] = {
+static const PyGetSetDef keydatamp_pygetset[] = {
#define GETSETNAME(op, name) kdm##op##_##name
- GET (mp, "KD.mp -> X")
+ GET (mp, "KD.mp -> X")
#undef GETSETNAME
{ 0 }
};
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"KeyDataMP(KEY, [flags = 0]): key data for large-integer keys.",
+ "KeyDataMP(KEY, [flags = 0]): key data for large-integer keys.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
- keydatamp_pygetset, /* @tp_getset@ */
+ PYGETSET(keydatamp), /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
static PyObject *kdsget_str(PyObject *me, void *hunoz)
{ return (PyString_FromString(KEYDATA_KD(me)->u.p)); }
-static PyGetSetDef keydatastr_pygetset[] = {
+static const PyGetSetDef keydatastr_pygetset[] = {
#define GETSETNAME(op, name) kds##op##_##name
- GET (str, "KD.str -> STRING")
+ GET (str, "KD.str -> STRING")
#undef GETSETNAME
{ 0 }
};
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"KeyDataString(KEY, [flags = 0]): key data for string keys.",
+ "KeyDataString(KEY, [flags = 0]): key data for string keys.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
- keydatastr_pygetset, /* @tp_getset@ */
+ PYGETSET(keydatastr), /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
return (ecpt_pywrapout(ecpt_pytype, &pt));
}
-static PyGetSetDef keydataec_pygetset[] = {
+static const PyGetSetDef keydataec_pygetset[] = {
#define GETSETNAME(op, name) kde##op##_##name
- GET (ecpt, "KD.ecpt -> ECPT")
+ GET (ecpt, "KD.ecpt -> ECPT")
#undef GETSETNAME
{ 0 }
};
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"KeyDataECPt(KEY, [flags = 0]): key data for elliptic-curve keys.",
+ "KeyDataECPt(KEY, [flags = 0]): key data for elliptic-curve keys.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
- keydataec_pygetset, /* @tp_getset@ */
+ PYGETSET(keydataec), /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"Iterator for structured keys.",
+ "Iterator for structured keys.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
if ((tag = PyString_AsString(key)) == 0)
goto end;
if ((kd = key_structfind(KEYDATA_KD(me), tag)) == 0)
- INDEXERR(key);
+ MAPERR(key);
key_incref(kd);
rc = keydata_pywrap(kd);
end:
key_structset(KEYDATA_KD(me), tag, KEYDATA_KD(value));
} else {
if (!key_structfind(KEYDATA_KD(me), tag))
- INDEXERR(key);
+ MAPERR(key);
key_structset(KEYDATA_KD(me), tag, 0);
}
rc = 0;
return (rc);
}
-static PyMappingMethods keydatastruct_pymapping = {
+static const PyMappingMethods keydatastruct_pymapping = {
gmap_pysize, /* @mp_length@ */
keydatastruct_pylookup, /* @mp_subscript@ */
keydatastruct_pystore /* @mp_ass_subscript@ */
0, /* @tp_repr@ */
0, /* @tp_as_number@ */
0, /* @tp_as_sequence@ */
- &keydatastruct_pymapping, /* @tp_as_mapping@ */
+ PYMAPPING(keydatastruct), /* @tp_as_mapping@ */
0, /* @tp_hash@ */
0, /* @tp_call@ */
0, /* @tp_str@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"KeyDataStructured([subkeys = []]): key data for structured keys.",
+ "KeyDataStructured([subkeys = []]): key data for structured keys.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
0, /* @tp_weaklistoffset@ */
subkeyiter_make, /* @tp_iter@ */
0, /* @tp_iternext@ */
- gmap_pymethods, /* @tp_methods@ */
+ PYMETHODS(gmap), /* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_base@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"Iterator for key attributes.",
+ "Iterator for key attributes.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
if ((attr = PyString_AsString(key)) == 0)
goto end;
if ((value = key_getattr(KEYATTRS_KF(me), KEYATTRS_K(me), attr)) == 0)
- INDEXERR(key);
+ MAPERR(key);
rc = PyString_FromString(value);
end:
return (rc);
KEYERR(err);
} else {
if (!key_getattr(KEYATTRS_KF(me), KEYATTRS_K(me), attr))
- INDEXERR(key);
+ MAPERR(key);
if ((err = key_putattr(KEYATTRS_KF(me), KEYATTRS_K(me), attr, 0)) != 0)
KEYERR(err);
}
FREEOBJ(me);
}
-static PyMappingMethods keyattrs_pymapping = {
+static const PyMappingMethods keyattrs_pymapping = {
gmap_pysize, /* @mp_length@ */
keyattrs_pylookup, /* @mp_subscript@ */
keyattrs_pystore /* @mp_ass_subscript@ */
0, /* @tp_compare@ */
0, /* @tp_repr@ */
0, /* @tp_as_number@ */
- &gmap_pysequence, /* @tp_as_sequence@ */
- &keyattrs_pymapping, /* @tp_as_mapping@ */
+ PYSEQUENCE(gmap), /* @tp_as_sequence@ */
+ PYMAPPING(keyattrs), /* @tp_as_mapping@ */
0, /* @tp_hash@ */
0, /* @tp_call@ */
0, /* @tp_str@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"Proxy thing for talking about key attributes.",
+ "Proxy thing for talking about key attributes.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
0, /* @tp_weaklistoffset@ */
keyattriter_make, /* @tp_iter@ */
0, /* @tp_iternext@ */
- gmap_pymethods, /* @tp_methods@ */
+ PYMETHODS(gmap), /* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_base@ */
return (-1);
}
-static PyMethodDef key_pymethods[] = {
+static const PyMethodDef key_pymethods[] = {
#define METHNAME(func) kmeth_##func
METH (delete, "KEY.delete()")
METH (expire, "KEY.expire()")
{ 0 }
};
-static PyGetSetDef key_pygetset[] = {
+static const PyGetSetDef key_pygetset[] = {
#define GETSETNAME(op, name) k##op##_##name
GET (file, "KEY.file -> KF")
GET (id, "KEY.id -> ID")
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"Key(KF, ID, TYPE, [exptime = KEXP_FOREVER]): key object.",
+ "Key(KF, ID, TYPE, [exptime = KEXP_FOREVER]): key object.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_iternext@ */
- key_pymethods, /* @tp_methods@ */
+ PYMETHODS(key), /* @tp_methods@ */
0, /* @tp_members@ */
- key_pygetset, /* @tp_getset@ */
+ PYGETSET(key), /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"Keyring iterator.",
+ "Keyring iterator.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
if (rc == Py_None) {
Py_DECREF(rc);
rc = 0;
- INDEXERR(key);
+ MAPERR(key);
}
end:
return (rc);
static PyObject *kfget_filep(PyObject *me, void *hunoz)
{ return (getbool(!!KEYFILE_KF(me)->fp)); }
-static PyMethodDef keyfile_pymethods[] = {
+static const PyMethodDef keyfile_pymethods[] = {
#define METHNAME(func) kfmeth_##func
METH (save, "KF.save()")
KWMETH(merge, "KF.merge(FILE, [report = <built-in-reporter>])")
- KWMETH(newkey, "KF.newkey(ID, TYPE, "
- "[exptime = KEXP_FOREVER]) -> KEY")
+ KWMETH(newkey, "KF.newkey(ID, TYPE, [exptime = KEXP_FOREVER]) "
+ "-> KEY")
METH (byid, "KF.byid(KEYID) -> KEY|None")
METH (bytype, "KF.bytype(TYPE) -> KEY|None")
METH (bytag, "KF.bytag(TAG) -> KEY|None")
{ 0 }
};
-static PyGetSetDef keyfile_pygetset[] = {
+static const PyGetSetDef keyfile_pygetset[] = {
#define GETSETNAME(op, name) kf##op##_##name
GET (name, "KF.name -> file name")
GET (modifiedp, "KF.modifiedp -> has keyring been modified?")
{ 0 }
};
-static PyMappingMethods keyfile_pymapping = {
+static const PyMappingMethods keyfile_pymapping = {
gmap_pysize,
keyfile_pylookup,
0
0, /* @tp_compare@ */
0, /* @tp_repr@ */
0, /* @tp_as_number@ */
- &gmap_pysequence, /* @tp_as_sequence@ */
- &keyfile_pymapping, /* @tp_as_mapping@ */
+ PYSEQUENCE(gmap), /* @tp_as_sequence@ */
+ PYMAPPING(keyfile), /* @tp_as_mapping@ */
0, /* @tp_hash@ */
0, /* @tp_call@ */
0, /* @tp_str@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"KeyFile(FILE, [how = KOPEN_READ], [report = ?]): Keyring file.\n\
- calls REPORT(FILE, LINE, MSG) on problems",
+ "KeyFile(FILE, [how = KOPEN_READ], [report = ?]): Keyring file.\n"
+ " calls REPORT(FILE, LINE, MSG) on problems",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
0, /* @tp_weaklistoffset@ */
keyiter_new, /* @tp_iter@ */
0, /* @tp_iternext@ */
- keyfile_pymethods, /* @tp_methods@ */
+ PYMETHODS(keyfile), /* @tp_methods@ */
0, /* @tp_members@ */
- keyfile_pygetset, /* @tp_getset@ */
+ PYGETSET(keyfile), /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
0 /* @tp_is_gc@ */
};
-/*----- Global stuff ------------------------------------------------------*/
-
-static PyMethodDef methods[] = {
-#define METHNAME(func) meth_##func
- METH (_KeyData_readflags,
- "KeyData.readflags(STRING) -> (FLAGS, MASK, REST)")
- METH (_KeyData_writeflags, "KeyData.writeflags(FLAGS) -> STRING")
- METH (_KeyData_read, "KeyData.read(STRING) -> (KD, REST)")
- METH (_KeyData_decode, "KeyData.decode(BYTES) -> KD")
-#undef METHNAME
- { 0 }
-};
-
/*----- Initialization ----------------------------------------------------*/
void key_pyinit(void)
INITTYPE(subkeyiter, root);
INITTYPE(keyattrs, root);
INITTYPE(keyattriter, root);
- addmethods(methods);
}
void key_pyinsert(PyObject *mod)