The following APIs are deprecated and will be removed, although there is currently no date scheduled for their removal.
- :c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: Unneeded since Python 3.8.
- :c:func:`PyErr_Fetch`: Use :c:func:`PyErr_GetRaisedException` instead.
- :c:func:`PyErr_NormalizeException`: Use :c:func:`PyErr_GetRaisedException` instead.
- :c:func:`PyErr_Restore`: Use :c:func:`PyErr_SetRaisedException` instead.
- :c:func:`PyModule_GetFilename`: Use :c:func:`PyModule_GetFilenameObject` instead.
- :c:func:`PyOS_AfterFork`: Use :c:func:`PyOS_AfterFork_Child` instead.
- :c:func:`PySlice_GetIndicesEx`: Use :c:func:`PySlice_Unpack` and :c:func:`PySlice_AdjustIndices` instead.
- :c:func:`PyUnicode_READY`: Unneeded since Python 3.12
- :c:func:`!PyErr_Display`: Use :c:func:`PyErr_DisplayException` instead.
- :c:func:`!_PyErr_ChainExceptions`: Use :c:func:`!_PyErr_ChainExceptions1` instead.
- :c:member:`!PyBytesObject.ob_shash` member: call :c:func:`PyObject_Hash` instead.
- Thread Local Storage (TLS) API:
- :c:func:`PyThread_create_key`: Use :c:func:`PyThread_tss_alloc` instead.
- :c:func:`PyThread_delete_key`: Use :c:func:`PyThread_tss_free` instead.
- :c:func:`PyThread_set_key_value`: Use :c:func:`PyThread_tss_set` instead.
- :c:func:`PyThread_get_key_value`: Use :c:func:`PyThread_tss_get` instead.
- :c:func:`PyThread_delete_key_value`: Use :c:func:`PyThread_tss_delete` instead.
- :c:func:`PyThread_ReInitTLS`: Unneeded since Python 3.7.