Dear maintainer,

Please consider the patch attached, which I have used to fix this package
FTBFS against NumPy 2.

Thank you,
Mateus
Description: Fix FTBFS on NumPy2
Author: Mateus Rodrigues de Morais <mateus.mor...@canonical.com>
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/libgetdata/+bug/2098512
Last-Update: 2025-02-14
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
Index: libgetdata-0.11.0/bindings/python/pydirfile.c
===================================================================
--- libgetdata-0.11.0.orig/bindings/python/pydirfile.c	2025-02-14 09:48:47.000000000 -0300
+++ libgetdata-0.11.0/bindings/python/pydirfile.c	2025-02-14 10:00:20.701340159 -0300
@@ -558,7 +558,7 @@
     if (!as_list) {
       dims[0] = (npy_intp)len;
       pyobj = PyArray_SimpleNew(1, dims, gdpy_npytype_from_type(return_type));
-      data = PyArray_DATA(pyobj);
+      data = PyArray_DATA((PyArrayObject*) pyobj);
     } else
       data = PyMem_Malloc((size_t)len * GD_SIZE(return_type));
 
@@ -753,7 +753,7 @@
     } else if (!as_list) {
       dims[0] = (npy_intp)carrays[i].n;
       pydata = PyArray_SimpleNew(1, dims, gdpy_npytype_from_type(return_type));
-      memcpy(PyArray_DATA(pydata), carrays[i].d, GD_SIZE(return_type) *
+      memcpy(PyArray_DATA((PyArrayObject*) pydata), carrays[i].d, GD_SIZE(return_type) *
           carrays[i].n);
     } else
       pydata = gdpy_convert_to_pylist(carrays[i].d, return_type, carrays[i].n);
@@ -1003,7 +1003,7 @@
     if (!as_list) {
       dims[0] = (npy_intp)num_samples;
       pyobj = PyArray_SimpleNew(1, dims, gdpy_npytype_from_type(return_type));
-      data = PyArray_DATA(pyobj);
+      data = PyArray_DATA((PyArrayObject*) pyobj);
     } else
       data = PyMem_Malloc((size_t)num_samples * GD_SIZE(return_type));
 
@@ -1537,7 +1537,7 @@
     } else if (!as_list) {
       dims[0] = (npy_intp)carrays[i].n;
       pydata = PyArray_SimpleNew(1, dims, gdpy_npytype_from_type(return_type));
-      memcpy(PyArray_DATA(pydata), carrays[i].d, GD_SIZE(return_type) *
+      memcpy(PyArray_DATA((PyArrayObject*) pydata), carrays[i].d, GD_SIZE(return_type) *
           carrays[i].n);
     } else
       pydata = gdpy_convert_to_pylist(carrays[i].d, return_type, carrays[i].n);
@@ -2310,7 +2310,7 @@
 
   /* we only handle list or ndarray data */
   if (PyArray_Check(pyobj)) {
-    if (PyArray_NDIM(pyobj) != 1) {
+    if (PyArray_NDIM((PyArrayObject*) pyobj) != 1) {
       PyErr_SetString(PyExc_ValueError,
           "pygetdata.dirfile.put_carray() argument 2 must be one dimensional");
       PyMem_Free(field_code);
@@ -2318,7 +2318,7 @@
       return NULL;
     }
     have_ndarray = 1;
-    len = (size_t)PyArray_DIM(pyobj, 0);
+    len = (size_t)PyArray_DIM((PyArrayObject*) pyobj, 0);
   } else {
     if (!PyList_Check(pyobj)) {
       PyErr_SetString(PyExc_TypeError,
@@ -2336,7 +2336,7 @@
     void *data;
 
     if (have_ndarray) {
-      type = gdpy_type_from_npytype(PyArray_TYPE(pyobj));
+      type = gdpy_type_from_npytype(PyArray_TYPE((PyArrayObject*) pyobj));
 
       if (type == GD_UNKNOWN) {
         PyErr_SetString(PyExc_ValueError,
@@ -2346,7 +2346,7 @@
         return NULL;
       }
 
-      if (!(PyArray_FLAGS(pyobj) & NPY_ALIGNED)) {
+      if (!(PyArray_FLAGS((PyArrayObject*) pyobj) & NPY_ALIGNED)) {
         PyErr_SetString(PyExc_ValueError,
             "pygetdata.dirfile.put_carray() argument 2 must be aligned.");
         PyMem_Free(field_code);
@@ -2354,7 +2354,7 @@
         return NULL;
       }
 
-      if (!(PyArray_FLAGS(pyobj) & NPY_C_CONTIGUOUS)) {
+      if (!(PyArray_FLAGS((PyArrayObject*) pyobj) & NPY_C_CONTIGUOUS)) {
         PyErr_SetString(PyExc_ValueError, "pygetdata.dirfile.put_carray()"
             " argument 2 must be C-style contiguous.");
         PyMem_Free(field_code);
@@ -2362,7 +2362,7 @@
         return NULL;
       }
 
-      data = PyArray_DATA(pyobj);
+      data = PyArray_DATA((PyArrayObject*) pyobj);
     } else {
       data = PyMem_Malloc(len * 16);
       type = gdpy_convert_from_pylist(pyobj, data, type, len);
@@ -2477,7 +2477,7 @@
 
   /* we only handle list or ndarray data */
   if (PyArray_Check(pyobj)) {
-    if (PyArray_NDIM(pyobj) != 1) {
+    if (PyArray_NDIM((PyArrayObject*) pyobj) != 1) {
       PyErr_SetString(PyExc_ValueError,
           "pygetdata.dirfile.putdata() argument 2 must be one dimensional");
       PyMem_Free(field_code);
@@ -2485,7 +2485,7 @@
       return NULL;
     }
     have_ndarray = 1;
-    ns = PyArray_DIM(pyobj, 0);
+    ns = PyArray_DIM((PyArrayObject*) pyobj, 0);
   } else {
     if (!PyList_Check(pyobj)) {
       PyErr_SetString(PyExc_TypeError,
@@ -2503,7 +2503,7 @@
     void *data;
 
     if (have_ndarray) {
-      type = gdpy_type_from_npytype(PyArray_TYPE(pyobj));
+      type = gdpy_type_from_npytype(PyArray_TYPE((PyArrayObject*) pyobj));
 
       if (type == GD_UNKNOWN) {
         PyErr_SetString(PyExc_ValueError,
@@ -2513,7 +2513,7 @@
         return NULL;
       }
 
-      if (!(PyArray_FLAGS(pyobj) & NPY_ALIGNED)) {
+      if (!(PyArray_FLAGS((PyArrayObject*) pyobj) & NPY_ALIGNED)) {
         PyErr_SetString(PyExc_ValueError,
             "pygetdata.dirfile.putdata() argument 2 must be aligned.");
         PyMem_Free(field_code);
@@ -2521,7 +2521,7 @@
         return NULL;
       }
 
-      if (!(PyArray_FLAGS(pyobj) & NPY_C_CONTIGUOUS)) {
+      if (!(PyArray_FLAGS((PyArrayObject*) pyobj) & NPY_C_CONTIGUOUS)) {
         PyErr_SetString(PyExc_ValueError, "pygetdata.dirfile.putdata()"
             " argument 2 must be C-style contiguous.");
         PyMem_Free(field_code);
@@ -2529,7 +2529,7 @@
         return NULL;
       }
 
-      data = PyArray_DATA(pyobj);
+      data = PyArray_DATA((PyArrayObject*) pyobj);
     } else {
       data = PyMem_Malloc(ns * 16);
       type = gdpy_convert_from_pylist(pyobj, data, type, ns);
Index: libgetdata-0.11.0/bindings/python/pygetdata.c
===================================================================
--- libgetdata-0.11.0.orig/bindings/python/pygetdata.c	2025-02-14 10:17:35.175703942 -0300
+++ libgetdata-0.11.0/bindings/python/pygetdata.c	2025-02-14 10:17:48.047942506 -0300
@@ -600,40 +600,40 @@
   switch(type)
   {
     case GD_UINT8:
-      npytype = PyArray_UINT8;
+      npytype = NPY_UINT8;
       break;
     case GD_INT8:
-      npytype = PyArray_INT8;
+      npytype = NPY_INT8;
       break;
     case GD_UINT16:
-      npytype = PyArray_UINT16;
+      npytype = NPY_UINT16;
       break;
     case GD_INT16:
-      npytype = PyArray_INT16;
+      npytype = NPY_INT16;
       break;
     case GD_UINT32:
-      npytype = PyArray_UINT32;
+      npytype = NPY_UINT32;
       break;
     case GD_INT32:
-      npytype = PyArray_INT32;
+      npytype = NPY_INT32;
       break;
     case GD_UINT64:
-      npytype = PyArray_UINT64;
+      npytype = NPY_UINT64;
       break;
     case GD_INT64:
-      npytype = PyArray_INT64;
+      npytype = NPY_INT64;
       break;
     case GD_FLOAT32:
-      npytype = PyArray_FLOAT32;
+      npytype = NPY_FLOAT32;
       break;
     case GD_FLOAT64:
-      npytype = PyArray_FLOAT64;
+      npytype = NPY_FLOAT64;
       break;
     case GD_COMPLEX64:
-      npytype = PyArray_COMPLEX64;
+      npytype = NPY_COMPLEX64;
       break;
     case GD_COMPLEX128:
-      npytype = PyArray_COMPLEX128;
+      npytype = NPY_COMPLEX128;
       break;
     default:
       npytype = NPY_NOTYPE;
-- 
debian-science-maintainers mailing list
debian-science-maintainers@alioth-lists.debian.net
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/debian-science-maintainers

Reply via email to