abi3info exposes information about CPython's "limited API" (including the stable ABI, called
abi3) as a Python library.
abi3info is available via
$ pip install abi3info
abi3info exposes limited API and stable ABI information in the form of a set of top-level dictionaries, namely:
import abi3info abi3info.FEATURE_MACROS abi3info.MACROS abi3info.STRUCTS abi3info.TYPEDEFS abi3info.FUNCTIONS abi3info.DATAS
Each of these is a mapping of a name (either as
Symbol) to a data model describing the kind of item (e.g.
See the generated documentation for more details, including comprehensive type hints and explanations of each data model.
See also the
stable_abi.toml file, taken from the CPython sources, which describes each model and their semantics.
Get information about a particular function:
from abi3info import FUNCTIONS from abi3info.models import Symbol func = FUNCTIONS[Symbol("_Py_NegativeRefcount")] print(func.symbol, func.added, func.ifdef, func.abi_only)
Get information about the feature macros that control the limited API:
from abi3info import FEATURE_MACROS print(fm for fm in FEATURE_MACROS.values())
abi3info is licensed under the MIT license.