Dear maintainer, Please consider the patch attached, which I have used to fix this FTBFS with NumPy 2 on Ubuntu.
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