cpython/Include
Victor Stinner 29e2245ad5
gh-91320: Add _Py_reinterpret_cast() macro (#91959)
Fix C++ compiler warnings about "old-style cast"
(g++ -Wold-style-cast) in the Python C API.  Use C++
reinterpret_cast<> and static_cast<> casts when the Python C API is
used in C++.

Example of fixed warning:

    Include/object.h:107:43: error: use of old-style cast to
    ‘PyObject*’ {aka ‘struct _object*’} [-Werror=old-style-cast]
    #define _PyObject_CAST(op) ((PyObject*)(op))

Add _Py_reinterpret_cast() and _Py_static_cast() macros.
2022-04-27 10:40:57 +02:00
..
cpython gh-91320: Add _Py_reinterpret_cast() macro (#91959) 2022-04-27 10:40:57 +02:00
internal gh-91719: Add pycore_opcode.h internal header file (#91906) 2022-04-26 00:14:30 +02:00
Python.h bpo-35134: Remove the Include/code.h header file (GH-32385) 2022-04-07 02:29:52 +02:00
README.rst bpo-43795: PEP 652 user documentation (GH-25668) 2021-05-11 07:04:33 -07:00
abstract.h bpo-45434: Remove useless space in includes (GH-28963) 2021-10-15 01:50:04 +02:00
bltinmodule.h
boolobject.h bpo-45459: C API uses type names rather than structure names (GH-31528) 2022-02-24 17:51:59 +01:00
bytearrayobject.h bpo-45434: Remove useless space in includes (GH-28963) 2021-10-15 01:50:04 +02:00
bytesobject.h bpo-45434: Remove useless space in includes (GH-28963) 2021-10-15 01:50:04 +02:00
ceval.h bpo-45434: Remove Include/eval.h header file (GH-28973) 2021-10-15 13:06:05 +02:00
codecs.h
compile.h
complexobject.h bpo-35134: Add Include/cpython/complexobject.h header (GH-32383) 2022-04-07 01:05:27 +02:00
datetime.h
descrobject.h bpo-45459: C API uses type names rather than structure names (GH-31528) 2022-02-24 17:51:59 +01:00
dictobject.h bpo-45434: Remove useless space in includes (GH-28963) 2021-10-15 01:50:04 +02:00
dynamic_annotations.h
enumobject.h
errcode.h bpo-46521: Fix codeop to use a new partial-input mode of the parser (GH-31010) 2022-02-08 11:54:37 +00:00
exports.h
fileobject.h bpo-45434: Remove useless space in includes (GH-28963) 2021-10-15 01:50:04 +02:00
fileutils.h bpo-45434: Remove useless space in includes (GH-28963) 2021-10-15 01:50:04 +02:00
floatobject.h bpo-46656: Remove Py_NO_NAN macro (GH-31160) 2022-02-25 01:32:57 +01:00
frameobject.h bpo-45434: Remove useless space in includes (GH-28963) 2021-10-15 01:50:04 +02:00
genericaliasobject.h bpo-44654: Refactor and clean up the union type implementation (GH-27196) 2021-07-17 22:44:10 +03:00
import.h bpo-45434: Remove useless space in includes (GH-28963) 2021-10-15 01:50:04 +02:00
intrcheck.h
iterobject.h
listobject.h bpo-45434: Remove useless space in includes (GH-28963) 2021-10-15 01:50:04 +02:00
longobject.h bpo-45459: Add pytypedefs.h header file (GH-31527) 2022-02-24 17:07:12 +01:00
marshal.h bpo-45474: Exclude all of marshal.h if Py_LIMITED_API is defined (GH-29061) 2021-10-20 02:32:14 -07:00
memoryobject.h bpo-45459: Add Py_buffer to limited API (GH-29991) 2022-02-02 07:03:10 -08:00
methodobject.h gh-91320: Add _Py_reinterpret_cast() macro (#91959) 2022-04-27 10:40:57 +02:00
modsupport.h gh-79315: Add Include/cpython/modsupport.h header (#91797) 2022-04-21 23:00:26 +02:00
moduleobject.h bpo-45459: Fix PyModuleDef_Slot type in the limited C API (GH-31668) 2022-03-03 23:06:55 +01:00
object.h gh-91320: Add _Py_reinterpret_cast() macro (#91959) 2022-04-27 10:40:57 +02:00
objimpl.h gh-91320: Add _Py_reinterpret_cast() macro (#91959) 2022-04-27 10:40:57 +02:00
opcode.h gh-91719: Add pycore_opcode.h internal header file (#91906) 2022-04-26 00:14:30 +02:00
osdefs.h
osmodule.h
patchlevel.h Post 3.11.0a7 2022-04-05 21:10:38 +01:00
py_curses.h bpo-46417: Add _PyType_CAST() macro (GH-30760) 2022-01-21 21:39:01 +01:00
pybuffer.h bpo-45459: Add pytypedefs.h header file (GH-31527) 2022-02-24 17:07:12 +01:00
pycapsule.h
pydtrace.d
pydtrace.h
pyerrors.h gh-90501: Add PyErr_GetHandledException and PyErr_SetHandledException (GH-30531) 2022-04-15 19:57:47 +01:00
pyexpat.h
pyframe.h bpo-45459: Add pytypedefs.h header file (GH-31527) 2022-02-24 17:07:12 +01:00
pyhash.h bpo-29410: Change the default hash algorithm to SipHash13. (GH-28752) 2021-10-10 17:29:46 +09:00
pylifecycle.h bpo-43931: Export Python version as API data (GH-25577) 2021-12-09 17:52:05 -08:00
pymacconfig.h
pymacro.h gh-91782: Define static_assert() macro on FreeBSD (#91787) 2022-04-21 16:40:34 +02:00
pymath.h bpo-46656: Remove Py_NO_NAN macro (GH-31160) 2022-02-25 01:32:57 +01:00
pymem.h bpo-45434: Remove useless space in includes (GH-28963) 2021-10-15 01:50:04 +02:00
pyport.h gh-91320: Add _Py_reinterpret_cast() macro (#91959) 2022-04-27 10:40:57 +02:00
pystate.h bpo-45459: C API uses type names rather than structure names (GH-31528) 2022-02-24 17:51:59 +01:00
pystrcmp.h
pystrtod.h bpo-45995: add "z" format specifer to coerce negative 0 to zero (GH-30049) 2022-04-11 15:34:18 +01:00
pythonrun.h Docs: Clarify availability of PyOS_CheckStack (GH-91816) 2022-04-22 12:44:43 +02:00
pythread.h gh-79315: Add Include/cpython/pythread.h header (#91798) 2022-04-21 23:00:42 +02:00
pytypedefs.h bpo-45459: Fix PyModuleDef_Slot type in the limited C API (GH-31668) 2022-03-03 23:06:55 +01:00
rangeobject.h
setobject.h bpo-35134: Add Include/cpython/setobject.h header (GH-32384) 2022-04-07 01:26:24 +02:00
sliceobject.h
structmember.h bpo-45459: C API uses type names rather than structure names (GH-31528) 2022-02-24 17:51:59 +01:00
structseq.h bpo-45459: C API uses type names rather than structure names (GH-31528) 2022-02-24 17:51:59 +01:00
sysmodule.h bpo-45434: Remove useless space in includes (GH-28963) 2021-10-15 01:50:04 +02:00
token.h
traceback.h bpo-45434: Remove useless space in includes (GH-28963) 2021-10-15 01:50:04 +02:00
tracemalloc.h
tupleobject.h bpo-45434: Remove useless space in includes (GH-28963) 2021-10-15 01:50:04 +02:00
typeslots.h bpo-45459: Add Py_buffer to limited API (GH-29991) 2022-02-02 07:03:10 -08:00
unicodeobject.h bpo-47164: Add _PyASCIIObject_CAST() macro (GH-32191) 2022-03-31 09:59:27 +02:00
warnings.h bpo-35134: Split warnings.h and weakrefobject.h (GH-29042) 2021-10-19 01:31:57 +02:00
weakrefobject.h bpo-35134: Split warnings.h and weakrefobject.h (GH-29042) 2021-10-19 01:31:57 +02:00

README.rst

The Python C API
================

The C API is divided into three sections:

1. ``Include/``: Limited API
2. ``Include/cpython/``: CPython implementation details
3. ``Include/internal/``: The internal API

Information on changing the C API is available `in the developer guide`_

.. _in the developer guide: https://devguide.python.org/c-api/