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 beta, 0xC for release
candidate and 0xF for final), in this
case it is alpha. |
| |
29-32 |
PY_RELEASE_SERIAL (the 2 in
3.4.1a2, zero for final releases) |
Thus 3.4.1a2 is hexversion 0x030401a2.
All the given macros are defined in Include/patchlevel.h.