Python C API compatibility
The pythoncapi-compat project can be used to write a C or C++ extension supporting a wide range of Python versions with a single code base. It is made of the pythoncapi_compat.h header file and the upgrade_pythoncapi.py script.
upgrade_pythoncapi.py requires Python 3.6 or newer.
See the
for more details.
Getting started
To upgrade a specific file:
python3 upgrade_pythoncapi.py module.c To upgrade all C/C++ files in a directory:
python3 upgrade_pythoncapi.py src/ Select operations
To only replace op->ob_type with Py_TYPE(op), select the Py_TYPE operation with:
python3 upgrade_pythoncapi.py -o Py_TYPE module.c Or the opposite, to apply all operations but leave op->ob_type unchanged, deselect the Py_TYPE operation with:
python3 upgrade_pythoncapi.py -o all,-Py_TYPE module.c Download pythoncapi_compat.h
If you want to pythoncapi_compat.h to your code base, use the upgrade_pythoncapi.py tool to fetch it:
python3 upgrade_pythoncapi.py --download PATH This project is distributed under the
Zero Clause BSD (0BSD) license
and is covered by the
.