
API and ABI Versioning
**********************

"PY_VERSION_HEX" is the Python version number encoded in a single
integer.

For example if the "PY_VERSION_HEX" is set to "0x030401a2", the
underlying version information can be found by treating it as a 32 bit
number in the following manner:

   +---------+---------------------------+--------------------------------------------------+
   | Bytes   | Bits (big endian order)   | Meaning                                          |
   +=========+===========================+==================================================+
   | "1"     | "1-8"                     | "PY_MAJOR_VERSION" (the "3" in "3.4.1a2")        |
   +---------+---------------------------+--------------------------------------------------+
   | "2"     | "9-16"                    | "PY_MINOR_VERSION" (the "4" in "3.4.1a2")        |
   +---------+---------------------------+--------------------------------------------------+
   | "3"     | "17-24"                   | "PY_MICRO_VERSION" (the "1" in "3.4.1a2")        |
   +---------+---------------------------+--------------------------------------------------+
   | "4"     | "25-28"                   | "PY_RELEASE_LEVEL" ("0xA" for alpha, "0xB" for   |
   +---------+---------------------------+--------------------------------------------------+
   +---------+---------------------------+--------------------------------------------------+

Thus "3.4.1a2" is hexversion "0x030401a2".

All the given macros are defined in Include/patchlevel.h.
