From 710fbbdf5340962b8be49da4998c1d77a2c4fc42 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Mon, 11 Apr 2022 11:44:24 +0200 Subject: [PATCH] BUG: Stop using PyBytesObject.ob_shash deprecated in Python 3.11, fixes #21317. PyBytesObject.ob_shash was deprecated in Python 3.11. --- numpy/core/src/multiarray/scalarapi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/numpy/core/src/multiarray/scalarapi.c b/numpy/core/src/multiarray/scalarapi.c index edbe5955ce97..4d4b4bccb0e4 100644 --- a/numpy/core/src/multiarray/scalarapi.c +++ b/numpy/core/src/multiarray/scalarapi.c @@ -773,7 +773,9 @@ PyArray_Scalar(void *data, PyArray_Descr *descr, PyObject *base) if (PyTypeNum_ISFLEXIBLE(type_num)) { if (type_num == NPY_STRING) { destptr = PyBytes_AS_STRING(obj); - ((PyBytesObject *)obj)->ob_shash = -1; + #if PY_VERSION_HEX < 0x030b00b0 + ((PyBytesObject *)obj)->ob_shash = -1; + #endif memcpy(destptr, data, itemsize); return obj; }