gh-112026: Restore removed _PyDict_GetItemStringWithError() by vstinner · Pull Request #112119 · python/cpython
@serhiy-storchaka: This private function is no longer used by Python, but I restore it to unblock numpy on Python 3.13 (keep dependency in the Python ecosystem). Later, I plan to deprecate this function and write documentation on how to update existing code using it. Apparently, just removing private functions without providing any solution didn't "please" users.
Is not PyDict_GetItemStringRef() the solution? It bhas different interface, but it is easy to write a wrapper.
PyObject * _PyDict_GetItemStringWithError(PyObject *obj, const char *key) { PyObject *value; (void)PyDict_GetItemStringRef(obj, key, &value); if (Py_REFCNT(value) == 1) { Py_DECREF(value); return NULL; } Py_DECREF(value); return value; }
Is not PyDict_GetItemStringRef() the solution? It bhas different interface, but it is easy to write a wrapper.
Solution to which problem? numpy doesn't built if Python C API doesn't contain _PyDict_GetItemStringWithError(). I restored the function to unblock numpy.
I plan to update numpy, deprecate _PyDict_GetItemStringWithError(), and later remove it.
aisk pushed a commit to aisk/cpython that referenced this pull request
…thon#112119) Restore the removed _PyDict_GetItemStringWithError() function. It is used by numpy.
I plan to update numpy
See numpy/numpy#26282, would also appreciate code review if you have time.
Is not PyDict_GetItemStringRef() the solution? It bhas different interface, but it is easy to write a wrapper.
I wrote #119855 to deprecate _PyDict_GetItemStringWithError().
Glyphack pushed a commit to Glyphack/cpython that referenced this pull request
…thon#112119) Restore the removed _PyDict_GetItemStringWithError() function. It is used by numpy.