8000 Merge pull request #25209 from ngoldbaum/expose-abstract · numpy/numpy@6031da1 · GitHub
[go: up one dir, main page]

Skip to content

Commit 6031da1

Browse files
authored
Merge pull request #25209 from ngoldbaum/expose-abstract
ENH: Expose abstract DType classes in the experimental DType API
2 parents 1a7e80f + 128d9b4 commit 6031da1

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

numpy/_core/include/numpy/experimental_dtype_api.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,10 @@ PyArray_GetDefaultDescr(PyArray_DTypeMeta *DType)
326326
/* Object/Void */
327327
#define PyArray_ObjectDType (*(PyArray_DTypeMeta *)__experimental_dtype_api_table[42])
328328
#define PyArray_VoidDType (*(PyArray_DTypeMeta *)__experimental_dtype_api_table[43])
329+
/* Abstract */
330+
#define PyArray_PyIntAbstractDType (*(PyArray_DTypeMeta *)__experimental_dtype_api_table[44])
331+
#define PyArray_PyFloatAbstractDType (*(PyArray_DTypeMeta *)__experimental_dtype_api_table[45])
332+
#define PyArray_PyComplexAbstractDType (*(PyArray_DTypeMeta *)__experimental_dtype_api_table[46])
329333

330334
/*
331335
* ********************************

numpy/_core/src/multiarray/experimental_public_dtype_api.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
#include "convert_datatype.h"
1616
#include "common_dtype.h"
1717
#include "umathmodule.h"
18+
#include "abstractdtypes.h"
19+
1820

1921
static PyArray_DTypeMeta *
2022
dtype_does_not_promote(
@@ -443,7 +445,7 @@ _PyArray_GetDefaultDescr(PyArray_DTypeMeta *DType)
443445
NPY_NO_EXPORT PyObject *
444446
_get_experimental_dtype_api(PyObject *NPY_UNUSED(mod), PyObject *arg)
445447
{
446-
static void *experimental_api_table[44] = {
448+
static void *experimental_api_table[47] = {
447449
&PyUFunc_AddLoopFromSpec,
448450
&PyUFunc_AddPromoter,
449451
&PyArrayDTypeMeta_Type,
@@ -498,6 +500,10 @@ _get_experimental_dtype_api(PyObject *NPY_UNUSED(mod), PyObject *arg)
498500
/* Object and Structured */
499501
experimental_api_table[42] = PyArray_DTypeFromTypeNum(NPY_OBJECT);
500502
experimental_api_table[43] = PyArray_DTypeFromTypeNum(NPY_VOID);
503+
/* Abstract */
504+
experimental_api_table[44] = &PyArray_PyIntAbstractDType;
505+
experimental_api_table[45] = &PyArray_PyFloatAbstractDType;
506+
experimental_api_table[46] = &PyArray_PyComplexAbstractDType;
501507
}
502508

503509
char *env = getenv("NUMPY_EXPERIMENTAL_DTYPE_API");

0 commit comments

Comments
 (0)
0