defines or C vars visible to python?
Fredrik Lundh
effbot at telia.com
Sat Mar 4 09:40:10 EST 2000
Tom Morton wrote:
> I'm writing a small colour ncurses module (in C) for a python project of
mine.
> I've had no real trouble apart from one point: Various colours are defined
in
> the module as:
> #define COL_RED 1
> etc.
> Is there any way I can make these visible to python when the module is
> imported, so instead of using numbers I can do this:
>
> cursesmod.changecol(COL_RED)
>
> instead of:
>
> cursesmod.changecol(1)
>
> I've probaby missed something in the Python/C api docs but it's driving me
> insane!
just add them to the module dictionary:
static void
setint(PyObject *d, char* name, int value)
{
PyObject *v = PyInt_FromLong(value);
if (!v || PyDict_SetItemString(d, name, v))
PyErr_Clear(); /* just ignore errors */
Py_XDECREF(v);
}
init_mymodule()
{
PyObject* m;
PyObject* d;
m = Py_InitModule("mymodule", myfunctions);
d = PyModule_GetDict(m);
setint(d, "MY_CONSTANT", MY_CONSTANT);
/* etc */
}
hope this helps!
</F>
<!-- (the eff-bot guide to) the standard python library:
http://www.pythonware.com/people/fredrik/librarybook.htm
-->
More information about the Python-list
mailing list