There are multiple Python functions marked as "deprecated", usually only in the documentation, or sometimes in comments, whereas the feature is there for a long time and there is no *need* to remove them, or the rationale changed. For example, the ``array.array('u')`` format was deprecated since it used the ``Py_UNICODE`` C type (which is deprecated), but the code was updated to use the ``wchar_t`` C type which is fine and not depreated. Another example is passing *NULL* as *value* to ``PyObject_SetAttr(obj, name, value)`` to delete an object attribute is deprecated... but this feature exists since the birth of Python. I don't think that it's really useful to deprecate this behavior: it's fine to keep it. The ``PyObject_DelAttr()`` function is just implemented as a macro passing *NULL*: ```c #define PyObject_DelAttr(O, A) PyObject_SetAttr((O), (A), NULL) ``` <!-- gh-linked-prs --> ### Linked PRs * gh-105374 * gh-105394 * gh-105395 * gh-106537 * gh-106538 * gh-106540 * gh-106675 <!-- /gh-linked-prs -->