Сделать внешнее перечисление «общедоступным» для Python?

Я упаковываю библиотеку, которая широко использует перечисления и поэтому содержит много постоянных идентификаторов. Есть ли способ сделать их доступными для 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 в файл .pxd, чтобы избежать конфликта имен.

Спасибо, Никлас

7
задан Niklas R 15 February 2012 в 21:32
поделиться