cython
1# Python version constants
2#
3# It's better to evaluate these at runtime (i.e. C compile time) using
4#
5# if PY_MAJOR_VERSION >= 3:
6# do_stuff_in_Py3_0_and_later()
7# if PY_VERSION_HEX >= 0x02070000:
8# do_stuff_in_Py2_7_and_later()
9#
10# than using the IF/DEF statements, which are evaluated at Cython
11# compile time. This will keep your C code portable.
12
13
14cdef extern from *:
15# the complete version, e.g. 0x010502B2 == 1.5.2b2
16int PY_VERSION_HEX
17
18# the individual sections as plain numbers
19int PY_MAJOR_VERSION
20int PY_MINOR_VERSION
21int PY_MICRO_VERSION
22int PY_RELEASE_LEVEL
23int PY_RELEASE_SERIAL
24
25# Note: PY_RELEASE_LEVEL is one of
26# 0xA (alpha)
27# 0xB (beta)
28# 0xC (release candidate)
29# 0xF (final)
30
31char PY_VERSION[]
32char PY_PATCHLEVEL_REVISION[]
33