Oven logo

Oven

abi3info2025.11.29

Published

A library for abi3 and other CPython API information

pip install abi3info

Package Downloads

Weekly DownloadsMonthly Downloads

Requires Python

>=3.10

Dependencies

    abi3info

    CI PyPI version

    abi3info exposes information about CPython's "limited API" (including the stable ABI, called abi3) as a Python library.

    Installation

    abi3info is available via pip:

    $ pip install abi3info
    

    Usage

    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 str or Symbol) to a data model describing the kind of item (e.g. FeatureMacro or Function).

    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.

    Examples

    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())
    

    Licensing

    abi3info is licensed under the MIT license.

    abi3info is partially generated from metadata retrieved from the CPython sources, which is licensed under the PSF license.