API と ABI のバージョニング¶
PY_VERSION_HEX
は、Python のバージョン番号を単一の整数に符号化したものです。
例えば、PY_VERSION_HEX
に 0x030401a2
が設定されていれば、その値を下記のように32ビットの値として扱うことで、バージョン情報を得ることができます:
bytes ビット (ビッグエンディアンオーダ) 意味 1
1-8
PY_MAJOR_VERSION
(3.4.1a2
中の3
)2
9-16
PY_MINOR_VERSION
(3.4.1a2
中の4
)3
17-24
PY_MICRO_VERSION
(3.4.1a2
中の1
)4
25-28
PY_RELEASE_LEVEL
(アルファ版では0xA
、ベータ版では0xB
、リリース候補版では0xC
、そして最終版は0xF
)、この例ではアルファ版を意味しています。29-32
PY_RELEASE_SERIAL
(3.4.1a2
中の2
、最終リリースでは 0)
従って、3.4.1a2
は hexversionで 0x030401a2
です。
これらのマクロは Include/patchlevel.h で定義されています。