Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gh-112026: Restore removed _PyDict_GetItemStringWithError() #112119

Merged
merged 1 commit into from Nov 15, 2023

Conversation

vstinner
Copy link
Member

@vstinner vstinner commented Nov 15, 2023

Restore the removed _PyDict_GetItemStringWithError() function. It is used by numpy.

Restore the removed _PyDict_GetItemStringWithError() function. It is
used by numpy.
@vstinner
Copy link
Member Author

@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.

@vstinner vstinner enabled auto-merge (squash) November 15, 2023 16:50
@vstinner vstinner merged commit bd2f148 into python:main Nov 15, 2023
31 checks passed
@vstinner vstinner deleted the restore_dict_geterror branch November 15, 2023 17:10
@serhiy-storchaka
Copy link
Member

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;
}

@vstinner
Copy link
Member Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants