Skip to content

Commit 0e89ac5

Browse files
committed
Update mpfdtype for numpy 2.0
1 parent 1bc3f00 commit 0e89ac5

File tree

8 files changed

+33
-25
lines changed

8 files changed

+33
-25
lines changed

mpfdtype/mpfdtype/src/casts.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11

22
#define PY_ARRAY_UNIQUE_SYMBOL MPFDType_ARRAY_API
3-
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
3+
#define NPY_NO_DEPRECATED_API NPY_2_0_API_VERSION
4+
#define NPY_TARGET_VERSION NPY_2_0_API_VERSION
45
#define NO_IMPORT_ARRAY
56

67
extern "C" {
78
#include <Python.h>
89

910
#include "numpy/arrayobject.h"
1011
#include "numpy/ndarraytypes.h"
11-
#include "numpy/experimental_dtype_api.h"
12+
#include "numpy/dtype_api.h"
1213
}
1314

1415
#include <vector>

mpfdtype/mpfdtype/src/dtype.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
#include <Python.h>
22

33
#define PY_ARRAY_UNIQUE_SYMBOL MPFDType_ARRAY_API
4-
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
4+
#define NPY_NO_DEPRECATED_API NPY_2_0_API_VERSION
5+
#define NPY_TARGET_VERSION NPY_2_0_API_VERSION
56
#define NO_IMPORT_ARRAY
67
#include "numpy/arrayobject.h"
78
#include "numpy/ndarraytypes.h"
8-
#include "numpy/experimental_dtype_api.h"
9+
#include "numpy/dtype_api.h"
910

1011
#include "mpfr.h"
1112

mpfdtype/mpfdtype/src/mpfdtype_main.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
#include <Python.h>
22

33
#define PY_ARRAY_UNIQUE_SYMBOL MPFDType_ARRAY_API
4-
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
4+
#define NPY_NO_DEPRECATED_API NPY_2_0_API_VERSION
55
#include "numpy/arrayobject.h"
6-
#include "numpy/experimental_dtype_api.h"
6+
#include "numpy/dtype_api.h"
77

88
#include "dtype.h"
99
#include "umath.h"
@@ -22,9 +22,6 @@ PyInit__mpfdtype_main(void)
2222
if (_import_array() < 0) {
2323
return NULL;
2424
}
25-
if (import_experimental_dtype_api(15) < 0) {
26-
return NULL;
27-
}
2825

2926
PyObject *m = PyModule_Create(&moduledef);
3027
if (m == NULL) {
@@ -47,10 +44,14 @@ PyInit__mpfdtype_main(void)
4744
goto error;
4845
}
4946

50-
if (init_mpf_umath() < 0) {
47+
PyObject *numpy = init_mpf_umath();
48+
49+
if (numpy == NULL) {
5150
goto error;
5251
}
5352

53+
Py_DECREF(numpy);
54+
5455
if (init_terrible_hacks() < 0) {
5556
goto error;
5657
}

mpfdtype/mpfdtype/src/numbers.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
*/
44

55
#define PY_ARRAY_UNIQUE_SYMBOL MPFDType_ARRAY_API
6-
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
6+
#define NPY_NO_DEPRECATED_API NPY_2_0_API_VERSION
7+
#define NPY_TARGET_VERSION NPY_2_0_API_VERSION
78
#define NO_IMPORT_ARRAY
89

910
extern "C" {
@@ -13,7 +14,7 @@ extern "C" {
1314
#include "numpy/ndarraytypes.h"
1415
#include "numpy/ufuncobject.h"
1516

16-
#include "numpy/experimental_dtype_api.h"
17+
#include "numpy/dtype_api.h"
1718
}
1819

1920
#include <algorithm>

mpfdtype/mpfdtype/src/scalar.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
#include <Python.h>
22

33
#define PY_ARRAY_UNIQUE_SYMBOL MPFDType_ARRAY_API
4-
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
4+
#define NPY_NO_DEPRECATED_API NPY_2_0_API_VERSION
55
#define NO_IMPORT_ARRAY
66
#include "numpy/arrayobject.h"
77
#include "numpy/ndarraytypes.h"
8-
#include "numpy/experimental_dtype_api.h"
8+
#include "numpy/dtype_api.h"
99

1010
#include "scalar.h"
1111
#include "numbers.h"

mpfdtype/mpfdtype/src/terrible_hacks.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
#include <Python.h>
22

33
#define PY_ARRAY_UNIQUE_SYMBOL MPFDType_ARRAY_API
4-
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
4+
#define NPY_NO_DEPRECATED_API NPY_2_0_API_VERSION
5+
#define NPY_TARGET_VERSION NPY_2_0_API_VERSION
56
#define NO_IMPORT_ARRAY
67
#include "numpy/arrayobject.h"
78
#include "numpy/ndarraytypes.h"
8-
#include "numpy/experimental_dtype_api.h"
9+
#include "numpy/dtype_api.h"
910

1011
#include "mpfr.h"
1112

@@ -68,8 +69,8 @@ init_terrible_hacks(void) {
6869
return -1;
6970
}
7071
/* ->f slots are the same for all instances (currently). */
71-
descr->base.f->copyswap = (PyArray_CopySwapFunc *)&copyswap_mpf;
72-
descr->base.f->compare = (PyArray_CompareFunc *)&compare_mpf;
72+
PyDataType_GetArrFuncs(&descr->base)->copyswap = (PyArray_CopySwapFunc *)&copyswap_mpf;
73+
PyDataType_GetArrFuncs(&descr->base)->compare = (PyArray_CompareFunc *)&compare_mpf;
7374
Py_DECREF(descr);
7475

7576
return 0;

mpfdtype/mpfdtype/src/umath.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11

22
#include "scalar.h"
33
#define PY_ARRAY_UNIQUE_SYMBOL MPFDType_ARRAY_API
4-
#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
4+
#define NPY_NO_DEPRECATED_API NPY_2_0_API_VERSION
5+
#define NPY_TARGET_VERSION NPY_2_0_API_VERSION
56
#define NO_IMPORT_ARRAY
67

78
extern "C" {
@@ -11,7 +12,7 @@ extern "C" {
1112
#include "numpy/ndarraytypes.h"
1213
#include "numpy/ufuncobject.h"
1314

14-
#include "numpy/experimental_dtype_api.h"
15+
#include "numpy/dtype_api.h"
1516
}
1617

1718
#include <algorithm>
@@ -591,15 +592,17 @@ init_comps(PyObject *numpy)
591592
/*
592593
* Function that adds our multiply loop to NumPy's multiply ufunc.
593594
*/
594-
int
595+
PyObject *
595596
init_mpf_umath(void)
596597
{
598+
import_umath();
599+
597600
/*
598601
* Get the multiply ufunc:
599602
*/
600603
PyObject *numpy = PyImport_ImportModule("numpy");
601604
if (numpy == NULL) {
602-
return -1;
605+
return NULL;
603606
}
604607

605608
if (init_unary_ops(numpy) < 0) {
@@ -612,10 +615,10 @@ init_mpf_umath(void)
612615
goto err;
613616
}
614617

615-
return 0;
618+
return numpy;
616619

617620
err:
618621
Py_DECREF(numpy);
619-
return -1;
622+
return NULL;
620623
}
621624

mpfdtype/mpfdtype/src/umath.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
extern "C" {
66
#endif
77

8-
int
8+
PyObject *
99
init_mpf_umath(void);
1010

1111
#ifdef __cplusplus

0 commit comments

Comments
 (0)