cython
1cdef public enum Truth:
2FALSE=0
3TRUE=1
4
5def enum_boolctx(Truth arg):
6"""
7>>> enum_boolctx(FALSE)
8False
9>>> enum_boolctx(TRUE)
10True
11"""
12if arg:
13return True
14else:
15return False
16
17cdef extern from *:
18enum: FALSE_VALUE "(0)"
19enum: TRUE_VALUE "(1)"
20
21def extern_enum_false():
22"""
23>>> extern_enum_false()
24"""
25if FALSE_VALUE:
26raise ValueError
27
28def extern_enum_true():
29"""
30>>> extern_enum_true()
31"""
32if not TRUE_VALUE:
33raise ValueError
34
35def extern_enum_false_true():
36"""
37>>> extern_enum_false_true()
38"""
39if not TRUE_VALUE or FALSE_VALUE:
40raise ValueError
41