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