Skip to content

Commit 43ef958

Browse files
authored
gh-106320: Document replacement for removed C API (#128787)
1 parent 1598e18 commit 43ef958

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

Doc/whatsnew/3.13.rst

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2706,6 +2706,33 @@ Changes in the C API
27062706
Calling this function is redundant now that :c:func:`PyFrame_GetLocals`
27072707
returns a write-through proxy for :term:`optimized scopes <optimized scope>`.
27082708

2709+
* Python 3.13 removed many private functions. Some of them can be replaced using these
2710+
alternatives:
2711+
2712+
* ``_PyDict_Pop()``: :c:func:`PyDict_Pop` or :c:func:`PyDict_PopString`;
2713+
* ``_PyDict_GetItemWithError()``: :c:func:`PyDict_GetItemRef`;
2714+
* ``_PyErr_WriteUnraisableMsg()``: :c:func:`PyErr_FormatUnraisable`;
2715+
* ``_PyEval_SetTrace()``: :c:func:`PyEval_SetTrace` or :c:func:`PyEval_SetTraceAllThreads`;
2716+
* ``_PyList_Extend()``: :c:func:`PyList_Extend`;
2717+
* ``_PyLong_AsInt()``: :c:func:`PyLong_AsInt`;
2718+
* ``_PyMem_RawStrdup()``: ``strdup()``;
2719+
* ``_PyMem_Strdup()``: ``strdup()``;
2720+
* ``_PyObject_ClearManagedDict()``: :c:func:`PyObject_ClearManagedDict`;
2721+
* ``_PyObject_VisitManagedDict()``: :c:func:`PyObject_VisitManagedDict`;
2722+
* ``_PyThreadState_UncheckedGet()``: :c:func:`PyThreadState_GetUnchecked()`;
2723+
* ``_PyTime_AsSecondsDouble()``: :c:func:`PyTime_AsSecondsDouble`;
2724+
* ``_PyTime_GetMonotonicClock()``: :c:func:`PyTime_Monotonic` or :c:func:`PyTime_MonotonicRaw`;
2725+
* ``_PyTime_GetPerfCounter()``: :c:func:`PyTime_PerfCounter` or :c:func:`PyTime_PerfCounterRaw`;
2726+
* ``_PyTime_GetSystemClock()``: :c:func:`PyTime_Time` or :c:func:`PyTime_TimeRaw`;
2727+
* ``_PyTime_MAX``: :c:var:`PyTime_MAX`;
2728+
* ``_PyTime_MIN``: :c:var:`PyTime_MIN`;
2729+
* ``_PyTime_t``: :c:type:`PyTime_t`;
2730+
* ``_Py_HashPointer()``: :c:func:`Py_HashPointer`;
2731+
* ``_Py_IsFinalizing()``: :c:func:`Py_IsFinalizing`.
2732+
2733+
The `pythoncapi-compat project`_ can be used to get most of these new
2734+
functions on Python 3.12 and older.
2735+
27092736
Regression Test Changes
27102737
=======================
27112738

0 commit comments

Comments
 (0)