Skip to main content

A library for abi3 and other CPython API information

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

abi3info-2023.1.27.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

abi3info-2023.1.27-py3-none-any.whl (18.2 kB view details)

Uploaded Python 3

File details

Details for the file abi3info-2023.1.27.tar.gz.

File metadata

  • Download URL: abi3info-2023.1.27.tar.gz
  • Upload date:
  • Size: 18.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for abi3info-2023.1.27.tar.gz
Algorithm Hash digest
SHA256 e71d8ea809658c13a4eaac3439cc454549c9e22b68218159450d0c6b7381b07f
MD5 c09d6a7a89c44c288cd7dd4c7b9dd009
BLAKE2b-256 6eb793d2628561c8491aef722373d501c5c4d99f1ad1168e7f4fc6d971e2c6fe

See more details on using hashes here.

File details

Details for the file abi3info-2023.1.27-py3-none-any.whl.

File metadata

  • Download URL: abi3info-2023.1.27-py3-none-any.whl
  • Upload date:
  • Size: 18.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for abi3info-2023.1.27-py3-none-any.whl
Algorithm Hash digest
SHA256 9a64c5beff1c52a2a273dd08fe6a7403a3aa305311dc4f3b7d9187531162113d
MD5 fd4e0d33ec1f08c46b58ac2da964e0b4
BLAKE2b-256 15199251853bf21e11289c007621ba6dffaf42aaa025ca43769fb468dfa1cf1e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page