使外部枚举“公开”对于Python?

发布于 2025-01-06 08:32:57 字数 443 浏览 0 评论 0原文

我正在包装一个大量使用枚举的库,因此包含许多常量标识符。有没有办法让它们可供 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

注意:我知道将外部声明移动到 .pxd 文件以避免命名冲突的选项。

谢谢,Niklas

I'm wrapping a library that makes massive use of enumerations and therefore contains many constant identifiers. Is there a way to make them available to Cython (declare them as extern) and at the same time make them available to Python?

I search for something like this

cdef extern from *:
    public enum:
        spam
        foo
        ham

which should replace

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

spam = cspam
foo = cfoo
ham = cham

Note: I know about the option to move the extern-declarations to a .pxd file to avoid naming-collision.

Thanks, Niklas

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遮云壑 2025-01-13 08:32:57

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

I have used ctypesgen.py with some success for exporting types and enumerations. This would likely be adequate for both python and cython.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文