2012-02-15 10 views
7

Tôi đang gói một thư viện sử dụng nhiều bảng liệt kê và do đó chứa nhiều số nhận dạng không đổi. Có cách nào để làm cho chúng có sẵn cho Cython (khai báo chúng là extern) và đồng thời làm cho chúng có sẵn cho Python không?Đặt enum bên ngoài "công khai" cho Python?

tôi tìm kiếm một cái gì đó như thế này

cdef extern from *: 
    public enum: 
     spam 
     foo 
     ham 

mà nên thay thế

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

spam = cspam 
foo = cfoo 
ham = cham 

Lưu ý: Tôi biết về các tùy chọn để di chuyển extern-tờ khai vào một tập tin .pxd để tránh naming- va chạm.

Cảm ơn, Niklas

Trả lời

1

Tôi đã sử dụng ctypesgen.py với một số thành công cho xuất khẩu chủng loại và kiểu liệt kê. Điều này có thể sẽ thích hợp cho cả python và cython.