defines or C vars visible to python?
Tom Morton
tmorton at yikesstation.freeserve.co.uk
Sat Mar 4 18:37:19 EST 2000
"Fredrik Lundh" <effbot at telia.com> wrote:
>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!
>
Thanks! It works great now!
--
Tom Morton, Drangband Maintainer:
http://www.yikesstation.freeserve.co.uk/drang/drang.htm
Yikes Station, Frontier Elite 2 Fansite:
http://www.yikesstation.freeserve.co.uk/frontier/yikes.htm
More information about the Python-list
mailing list