Hi, The issue is caused by improperly importing the numpy C API. If you apply this diff, it will work:
diff --git a/_aux.c b/_aux.c index e3f8f32..435b612 100644 --- a/_aux.c +++ b/_aux.c @@ -1,4 +1,6 @@ #include "Python.h" +#define NO_IMPORT_ARRAY +#define PY_ARRAY_UNIQUE_SYMBOL ExtModule #include "numpy/arrayobject.h" #include "_aux.h" diff --git a/ext.c b/ext.c index 65ad2c2..0e8eb3e 100644 --- a/ext.c +++ b/ext.c @@ -1,5 +1,6 @@ #define PY_SSIZE_T_CLEAN #include "Python.h" +#define PY_ARRAY_UNIQUE_SYMBOL ExtModule #include "numpy/arrayobject.h" #include "_aux.h" See also this new docs page, which hopefully clarifies this sort of arcane point: https://numpy.org/devdocs/reference/c-api/array.html#including-and-importing-the-c-api We were a bit loose in what we allowed before, effectively leaking details of the numpy C API. We cleaned that up, but that means C extensions now need to do this import dance correctly. Hope that helps, Nathan On Fri, May 24, 2024 at 12:52 PM Pavlyk, Oleksandr < oleksandr.pav...@intel.com> wrote: > I am working to transition mkl_fft and mkl_random to NumPy 2.0. > > Both of these projects contain native extensions. > > > > I have distilled unexpected behavior behind observed test failures in > minimal C extension: > > > > https://github.com/oleksandr-pavlyk/reproducer-for-question-about-numpy2 > > > > The extension defines a single Python function which does expects > numpy.ndarray, and queries its itemsize in two ways > > > > 1. By calling C function declared in “_aux.h” defined in “_aux.c” to > call PyArray_ITEMSIZE and return the result > 2. By calling PyArray_ITEMSIZE directly > > > > https://github.com/oleksandr-pavlyk/reproducer-for-question-about-numpy2/blob/main/ext.c#L19-L22 > > > > The result obtained by calling C function is always 0, while direct call > gives the correct result. > > > > I am hoping for advice about what is wrong and how to fix it. > > > > Thank you, > Sasha > _______________________________________________ > NumPy-Discussion mailing list -- numpy-discussion@python.org > To unsubscribe send an email to numpy-discussion-le...@python.org > https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ > Member address: nathan12...@gmail.com >
_______________________________________________ NumPy-Discussion mailing list -- numpy-discussion@python.org To unsubscribe send an email to numpy-discussion-le...@python.org https://mail.python.org/mailman3/lists/numpy-discussion.python.org/ Member address: arch...@mail-archive.com