1PYTHON setup.py build_ext --inplace 2PYTHON -c "import import_enums_test" 3 4######## setup.py ######## 5 6from Cython.Build.Dependencies import cythonize 7 8from distutils.core import setup 9 10setup( 11 ext_modules = cythonize(["enums.pyx", "no_enums.pyx"]), 12) 13 14######## enums.pyx ######## 15 16cpdef enum: 17 BAR 18 19cpdef foo(): pass 20 21######## enums.pxd ######## 22 23cpdef enum: 24 FOO 25 26cpdef enum NamedEnumType: 27 NamedEnumValue = 389 28 29cpdef foo() 30 31######## no_enums.pyx ######## 32 33from enums cimport * 34 35def get_named_enum_value(): 36 return NamedEnumType.NamedEnumValue 37 38######## import_enums_test.py ######## 39 40# We can import enums with a star import. 41from enums import * 42 43print(dir()) 44assert 'BAR' in dir() and 'FOO' in dir() 45assert 'NamedEnumType' in dir() 46 47# enums not generated in the wrong module 48import no_enums 49print(dir(no_enums)) 50assert 'FOO' not in dir(no_enums) 51assert 'foo' not in dir(no_enums) 52 53assert no_enums.get_named_enum_value() == NamedEnumType.NamedEnumValue 54