GitXplorerGitXplorer
p

pythoncapi-compat

public
78 stars
22 forks
1 issues

Commits

List of commits on branch main.
Verified
2d18aecd7b2f549d38a13e27b682ea4966f37bd8

Add critical section API (#106)

nngoldbaum committed 25 days ago
Verified
39e2663e6acc0b68d5dd75bdaad0af33152552ae

Add static inline to PyUnicodeWriter_WriteStr (#104)

vvstinner committed a month ago
Verified
4094c64bb0c6ae0ceb91b8f0cbf3ad28421f2503

Add PyUnicodeWriter API (#95)

vvstinner committed 2 months ago
Verified
ea1f7f6eac63ff401937515638252402ff33dccb

PyLong_GetSign will be added in 3.140a0 (#102)

hhugovk committed 2 months ago
Verified
18d1df75c72a4ac38fc0a934c13ab6de081a19d2

Add PyLong_GetSign() function (#99)

vvstinner committed 4 months ago
Verified
4c2e17d00fd953b42fb4f60204466c153d0d4605

GHA: don't test old Python on macOS (#100)

vvstinner committed 4 months ago

README

The README file for this repository.

++++++++++++++++++++++++++ Python C API compatibility ++++++++++++++++++++++++++

.. image:: https://github.com/python/pythoncapi-compat/actions/workflows/build.yml/badge.svg :alt: Build status of pythoncapi-compat on GitHub Actions :target: https://github.com/python/pythoncapi-compat/actions

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 documentation at ReadTheDocs <https://pythoncapi-compat.readthedocs.io/en/latest/>_ 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 <https://opensource.org/licenses/0BSD>_ and is covered by the PSF Code of Conduct <https://www.python.org/psf/codeofconduct/>_.