2012-02-15 10 views
7

Estoy envolviendo una biblioteca que hace un uso masivo de enumeraciones y, por lo tanto, contiene muchos identificadores constantes. ¿Hay alguna manera de ponerlos a disposición de Cython (declararlos como extern) y al mismo tiempo ponerlos a disposición de Python?Hacer externed enum "public" para Python?

puedo buscar algo como esto

cdef extern from *: 
    public enum: 
     spam 
     foo 
     ham 

que debe reemplazar

cdef extern from *: 
    enum: 
     cspam "spam" 
     cfoo "foo" 
     cham "ham" 

spam = cspam 
foo = cfoo 
ham = cham 

Nota: lo que sé sobre la opción de mover los extern-declaraciones en un archivo .pxd para evitar naming- colisión.

Gracias, Niklas

Respuesta

1

he utilizado ctypesgen.py con cierto éxito para la exportación de tipos y enumeraciones. Esto probablemente sea adecuado para python y cython.