Re: defining module constants

Robert Bradshaw <[email protected]>
Newsgroups gmane.comp.python.pyrex
Message-ID <[email protected]>
On Apr 10, 2008, at 11:52 AM, Rob Shortt wrote:
> Hello,
>
> I'm creating some python bindings to a C library.  I've defined
> everything from the lib's header file in my pxd file and would like to
> expose many of the defined enums in my pyrex module, not as members  
> of a
> class, but toplevel to my module.
>
> For example, in my pxd file I have stuff like:
>
> cdef extern from "directfb.h":
>     ctypedef enum DFBResult:
>         DFB_OK
>         DFB_FAILURE
>         DFB_INIT
>         DFB_BUG
>
> and so on...
>
> What can I add to my pyx file so that my resulting module will have
> these, like:
>
> import directfb
> print directfb.DFB_OK
>
>
> Please don't tell me I have to redefine or reassign them all in my pyx
> file, but some equvalent to PyModule_AddIntConstant(m, "DFB_OK",  
> DFB_OK)
> would be ok.

I don't know of an automated way to do this, but perhaps we could  
make it so an enum could be declared "public" and all its members  
exported to the surrounding module (though one probably doesn't want  
those symbols in everything that uses your .pxd file.

One thing to note is that nothing prevents anyone from writing

directfb.DFB_OK = 389

or even

directfb.DFB_OK = "got you!"

_______________________________________________
Pyrex mailing list
[email protected]
http://lists.copyleft.no/mailman/listinfo/pyrex
PGP.sig (application/pgp-signature, 186 B) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.