[Cython] [cython-users] Cython .pxd introspection: listing defined constants

Greg Ewing greg.ewing at canterbury.ac.nz
Sun Feb 20 21:13:49 CET 2011

Robert Bradshaw wrote:

> BTW, the "public" keyword is the wrong thing to use here, as that
> actually controls name mangling and (c-level) symbol exporting. The
> fact that means a different thing for members than for top-level
> symbols isn't ideal, but at least it's unambiguous as members need not
> be mangled.

The overloading of 'public' is really a bit of a mess. I've been
thinking for a while that there really ought to be a different
keyword such as "exposed" for declaring that things are to be
exposed to Python. It would be useful in lots of ways:

cdef class Foo:
   cdef exposed int i   # formerly 'public'

cdef exposed enum E:
   a, b, c              # creates Python bindings for these names

cdef exposed struct S:         # Exposed but mangled as usual

cdef public exposed struct S:  # Exposed and unmangled


More information about the cython-devel mailing list