Original file line numberDiff line numberDiff line change@@ -64,30 +64,6 @@ as much as it can.
6464 .. versionadded:: 3.13
6565666667-.. c:function:: PyObject* PyWeakref_GetObject(PyObject *ref)
68-69- Return a :term:`borrowed reference` to the referenced object from a weak
70- reference, *ref*. If the referent is no longer live, returns ``Py_None``.
71-72- .. note::
73-74- This function returns a :term:`borrowed reference` to the referenced object.
75- This means that you should always call :c:func:`Py_INCREF` on the object
76- except when it cannot be destroyed before the last usage of the borrowed
77- reference.
78-79- .. deprecated-removed:: 3.13 3.15
80- Use :c:func:`PyWeakref_GetRef` instead.
81-82-83-.. c:function:: PyObject* PyWeakref_GET_OBJECT(PyObject *ref)
84-85- Similar to :c:func:`PyWeakref_GetObject`, but does no error checking.
86-87- .. deprecated-removed:: 3.13 3.15
88- Use :c:func:`PyWeakref_GetRef` instead.
89-90-9167.. c:function::intPyWeakref_IsDead(PyObject *ref)
92689369 Test if the weak reference *ref* is dead. Returns 1 if the reference is
Original file line numberDiff line numberDiff line change@@ -2947,12 +2947,6 @@ PyWeakref_CheckProxy:PyObject*:ob:0:
29472947PyWeakref_CheckRef:int:::
29482948PyWeakref_CheckRef:PyObject*:ob:0:
294929492950-PyWeakref_GET_OBJECT:PyObject*::0:
2951-PyWeakref_GET_OBJECT:PyObject*:ref:0:
2952-2953-PyWeakref_GetObject:PyObject*::0:
2954-PyWeakref_GetObject:PyObject*:ref:0:
2955-29562950PyWeakref_GetRef:int:::
29572951PyWeakref_GetRef:PyObject*:ref:0:
29582952PyWeakref_GetRef:PyObject**:pobj:+1:
Original file line numberDiff line numberDiff line change@@ -3,7 +3,7 @@ Pending removal in Python 3.15
3344* The :c:func:`!PyImport_ImportModuleNoBlock`:
55 Use :c:func:`PyImport_ImportModule` instead.
6-* :c:func:`PyWeakref_GetObject` and :c:func:`PyWeakref_GET_OBJECT`:
6+* :c:func:`!PyWeakref_GetObject` and :c:func:`!PyWeakref_GET_OBJECT`:
77 Use :c:func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project
88<https://github.com/python/pythoncapi-compat/>`__ can be used to get
99:c:func:`PyWeakref_GetRef` on Python 3.12 and older.
Original file line numberDiff line numberDiff line change@@ -173,9 +173,9 @@ that return :term:`strong references <strong reference>`.
173173+-----------------------------------+-----------------------------------+
174174|:c:func:`PyDict_Next` | none (see :ref:`PyDict_Next`) |
175175+-----------------------------------+-----------------------------------+
176-|:c:func:`PyWeakref_GetObject`|:c:func:`PyWeakref_GetRef` |
176+|:c:func:`!PyWeakref_GetObject` |:c:func:`PyWeakref_GetRef` |
177177+-----------------------------------+-----------------------------------+
178-|:c:func:`PyWeakref_GET_OBJECT`|:c:func:`PyWeakref_GetRef` |
178+|:c:func:`!PyWeakref_GET_OBJECT` |:c:func:`PyWeakref_GetRef` |
179179+-----------------------------------+-----------------------------------+
180180|:c:func:`PyImport_AddModule` |:c:func:`PyImport_AddModuleRef` |
181181+-----------------------------------+-----------------------------------+
Original file line numberDiff line numberDiff line change@@ -2673,7 +2673,7 @@ Removed
2673267326742674 (Contributed by Victor Stinner in :issue:`45474`.)
267526752676-* Exclude :c:func:`PyWeakref_GET_OBJECT` from the limited C API. It never
2676+* Exclude :c:func:`!PyWeakref_GET_OBJECT` from the limited C API. It never
26772677 worked since the :c:type:`!PyWeakReference` structure is opaque in the
26782678 limited C API.
26792679 (Contributed by Victor Stinner in :issue:`35134`.)
Original file line numberDiff line numberDiff line change@@ -2246,7 +2246,7 @@ New Features
22462246 (Contributed by Serhiy Storchaka in :gh:`110289`.)
2247224722482248* Add the :c:func:`PyWeakref_GetRef` function
2249- as an alternative to :c:func:`PyWeakref_GetObject`
2249+ as an alternative to :c:func:`!PyWeakref_GetObject`
22502250 that returns a :term:`strong reference`
22512251 or ``NULL`` if the referent is no longer live.
22522252 (Contributed by Victor Stinner in :gh:`105927`.)
@@ -2531,8 +2531,8 @@ Deprecated C APIs
25312531 are just aliases to :c:type:`!wchar_t`.
25322532 (Contributed by Victor Stinner in :gh:`105156`.)
253325332534-* Deprecate the :c:func:`PyWeakref_GetObject` and
2535-:c:func:`PyWeakref_GET_OBJECT` functions,
2534+* Deprecate the :c:func:`!PyWeakref_GetObject` and
2535+:c:func:`!PyWeakref_GET_OBJECT` functions,
25362536 which return a :term:`borrowed reference`.
25372537 Replace them with the new :c:func:`PyWeakref_GetRef` function,
25382538 which returns a :term:`strong reference`.
Original file line numberDiff line numberDiff line change@@ -869,6 +869,11 @@ Removed C APIs
869869 of :c:func:`PyImport_ImportModule`.
870870 (Contributed by Bénédikt Tran in :gh:`133644`.)
871871872+* :c:func:`!PyWeakref_GetObject` and :c:macro:`!PyWeakref_GET_OBJECT`:
873+ use :c:func:`PyWeakref_GetRef` instead. The |pythoncapi_compat_project|
874+ can be used to get :c:func:`!PyWeakref_GetRef` on Python 3.12 and older.
875+ (Contributed by Bénédikt Tran in :gh:`133644`.)
876+872877* Remove deprecated :c:func:`!PySys_ResetWarnOptions`.
873878 Clear :data:`sys.warnoptions` and :data:`!warnings.filters` instead.
874879Original file line numberDiff line numberDiff line change@@ -47,20 +47,3 @@ PyAPI_FUNC(void) _PyWeakref_ClearRef(PyWeakReference *self);
47474848// Test if a weak reference is dead.
4949PyAPI_FUNC(int) PyWeakref_IsDead(PyObject*ref);
50-51-Py_DEPRECATED(3.13) staticinlinePyObject*PyWeakref_GET_OBJECT(PyObject*ref_obj)
52-{
53-PyWeakReference*ref=_PyWeakref_CAST(ref_obj);
54-PyObject*obj=ref->wr_object;
55-// Explanation for the Py_REFCNT() check: when a weakref's target is part
56-// of a long chain of deallocations which triggers the trashcan mechanism,
57-// clearing the weakrefs can be delayed long after the target's refcount
58-// has dropped to zero. In the meantime, code accessing the weakref will
59-// be able to "see" the target object even though it is supposed to be
60-// unreachable. See issue gh-60806.
61-if (Py_REFCNT(obj) >0) {
62-returnobj;
63- }
64-returnPy_None;
65-}
66-#definePyWeakref_GET_OBJECT(ref) PyWeakref_GET_OBJECT(_PyObject_CAST(ref))
Original file line numberDiff line numberDiff line change@@ -27,7 +27,6 @@ PyAPI_FUNC(PyObject *) PyWeakref_NewRef(PyObject *ob,
2727PyObject*callback);
2828PyAPI_FUNC(PyObject*) PyWeakref_NewProxy(PyObject*ob,
2929PyObject*callback);
30-Py_DEPRECATED(3.13) PyAPI_FUNC(PyObject*) PyWeakref_GetObject(PyObject*ref);
31303231#if !defined(Py_LIMITED_API) ||Py_LIMITED_API+0 >= 0x030D0000
3332PyAPI_FUNC(int) PyWeakref_GetRef(PyObject*ref, PyObject**pobj);