为Python提供externed enum"public"?

Nik*_*s R 7 python cython extern

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

我搜索这样的东西

cdef extern from *:
    public enum:
        spam
        foo
        ham
Run Code Online (Sandbox Code Playgroud)

哪个应该取代

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

spam = cspam
foo = cfoo
ham = cham
Run Code Online (Sandbox Code Playgroud)

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

谢谢,尼克拉斯

Bri*_*ain 1

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