#
#################################################################
+from python_version cimport *
from python_ref cimport *
from python_exc cimport *
from python_module cimport *
--- /dev/null
+# Python version constants
+#
+# It's better to evaluate these at runtime (i.e. C compile time) using
+#
+# if PY_MAJOR_VERSION >= 3:
+# do_stuff_in_Py3_0_and_later()
+# if PY_VERSION_HEX >= 0x02050000:
+# do_stuff_in_Py2_5_and_later()
+#
+# than using the IF/DEF statements, which are evaluated at Cython
+# compile time. This will keep your C code portable.
+
+
+cdef extern from *:
+ # the complete version, e.g. 0x010502B2 == 1.5.2b2
+ int PY_VERSION_HEX
+
+ # the individual sections as plain numbers
+ int PY_MAJOR_VERSION
+ int PY_MINOR_VERSION
+ int PY_MICRO_VERSION
+ int PY_RELEASE_LEVEL
+ int PY_RELEASE_SERIAL
+
+ # Note: PY_RELEASE_LEVEL is one of
+ # 0xA (alpha)
+ # 0xB (beta)
+ # 0xC (release candidate)
+ # 0xF (final)
+
+ char[] PY_VERSION
+ char[] PY_PATCHLEVEL_REVISION