API and ABI Versioning — Python 3.8.20 documentation (original) (raw)
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 in3.4.1a2) 2 9-16 PY_MINOR_VERSION (the 4 in3.4.1a2) 3 17-24 PY_MICRO_VERSION (the 1 in3.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 in3.4.1a2, zero for final releases)
Thus 3.4.1a2
is hexversion 0x030401a2
.
All the given macros are defined in Include/patchlevel.h.