From b1d2335618e51382de5da9d7cf7832062236e7d8 Mon Sep 17 00:00:00 2001 From: Sebastian Berg Date: Wed, 13 Jul 2022 12:43:02 -0700 Subject: [PATCH] BUG: Fix experimental dtype slot numbers Unfortunately, I forgot to move them around when introducing ensure_canonical, but the code relies on the order for simplicitly currently... Which doesn't matter, just means that the DType part of the experimental ufunc API is completely unusable in 1.23 right now. --- numpy/core/include/numpy/experimental_dtype_api.h | 7 ++++--- numpy/core/src/multiarray/experimental_public_dtype_api.c | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/numpy/core/include/numpy/experimental_dtype_api.h b/numpy/core/include/numpy/experimental_dtype_api.h index 23e9a8d2160c..1fbd41981029 100644 --- a/numpy/core/include/numpy/experimental_dtype_api.h +++ b/numpy/core/include/numpy/experimental_dtype_api.h @@ -336,8 +336,9 @@ typedef int (PyArrayMethod_StridedLoop)(PyArrayMethod_Context *context, #define NPY_DT_default_descr 3 #define NPY_DT_common_dtype 4 #define NPY_DT_common_instance 5 -#define NPY_DT_setitem 6 -#define NPY_DT_getitem 7 +#define NPY_DT_ensure_canonical 6 +#define NPY_DT_setitem 7 +#define NPY_DT_getitem 8 // TODO: These slots probably still need some thought, and/or a way to "grow"? @@ -457,7 +458,7 @@ PyArray_GetDefaultDescr(PyArray_DTypeMeta *DType) */ #if !defined(NO_IMPORT) && !defined(NO_IMPORT_ARRAY) -#define __EXPERIMENTAL_DTYPE_VERSION 4 +#define __EXPERIMENTAL_DTYPE_VERSION 5 static int import_experimental_dtype_api(int version) diff --git a/numpy/core/src/multiarray/experimental_public_dtype_api.c b/numpy/core/src/multiarray/experimental_public_dtype_api.c index 441dbdc1ff64..36350c83209f 100644 --- a/numpy/core/src/multiarray/experimental_public_dtype_api.c +++ b/numpy/core/src/multiarray/experimental_public_dtype_api.c @@ -16,7 +16,7 @@ #include "common_dtype.h" -#define EXPERIMENTAL_DTYPE_API_VERSION 4 +#define EXPERIMENTAL_DTYPE_API_VERSION 5 typedef struct{ @@ -117,7 +117,7 @@ PyArray_ArrFuncs default_funcs = { /* other slots are in order, so keep only last around: */ -#define NUM_DTYPE_SLOTS 7 +#define NUM_DTYPE_SLOTS 8 int