Fred L. Drake, Jr. wrote:
Vladimir Marangozov writes:
So name it PyModule_AddConstant(module, name, constant), which fails with "can't add constant to module" err msg.
Even better! I expect there should be at least a couple of these; one for ints, one for strings.
What about something like this (untested): ------------------------------------------------------------------------ int PyModule_AddObject(PyObject *m, char *name, PyObject *o) { if (!PyModule_Check(m) || o == NULL) return -1; if (PyDict_SetItemString(((PyModuleObject *)m)->md_dict, name, o)) return -1; Py_DECREF(o); return 0; } #define PyModule_AddConstant(m, x) \ PyModule_AddObject(m, #x, PyInt_FromLong(x)) #define PyModule_AddString(m, x) \ PyModule_AddObject(m, x, PyString_FromString(x)) ------------------------------------------------------------------------ void initmymodule(void) { int CONSTANT = 123456; char *STR__doc__ = "Vlad"; PyObject *m = Py_InitModule4("mymodule"...); if (PyModule_AddString(m, STR__doc__) || PyModule_AddConstant(m, CONSTANT) || ... { Py_FatalError("can't init mymodule"); } } -- Vladimir MARANGOZOV | Vladimir.Marangozov@inrialpes.fr http://sirac.inrialpes.fr/~marangoz | tel:(+33-4)76615277 fax:76615252