为Python提供externed enum“public”?

时间:2012-02-15 21:32:38

标签: python cython extern

我正在包装一个大量使用枚举的库,因此包含许多常量标识符。有没有办法让它们可用于Cython(将它们声明为extern)并同时将它们提供给Python?

我搜索类似的东西

cdef extern from *:
    public enum:
        spam
        foo
        ham

应该替换

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

spam = cspam
foo = cfoo
ham = cham

注意:我知道将extern-declarations移动到.pxd文件以避免命名冲突的选项。

谢谢,Niklas

1 个答案:

答案 0 :(得分:1)

我使用ctypesgen.py在导出类型和枚举方面取得了一些成功。对于python和cython来说,这可能就足够了。