API and ABI Versioning

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

For example if thePY_VERSION_HEX is set to0x030401a2, the underlyingversion information can be found by treating it as a 32 bit number inthe following manner:

Bytes

Bits (big endian order)

Meaning

1

1-8

PY_MAJOR_VERSION (the3 in3.4.1a2)

2

9-16

PY_MINOR_VERSION (the4 in3.4.1a2)

3

17-24

PY_MICRO_VERSION (the1 in3.4.1a2)

4

25-28

PY_RELEASE_LEVEL (0xA for alpha,0xB for beta,0xC for releasecandidate and0xF for final), in thiscase it is alpha.

29-32

PY_RELEASE_SERIAL (the2 in3.4.1a2, zero for final releases)

Thus3.4.1a2 is hexversion0x030401a2.

All the given macros are defined inInclude/patchlevel.h.