[med-svn] [Git][med-team/nipy][master] 3 commits: cme fix dpkg-control

Andreas Tille (@tille) gitlab at salsa.debian.org
Fri May 15 20:01:25 BST 2026



Andreas Tille pushed to branch master at Debian Med / nipy


Commits:
75a8e117 by Andreas Tille at 2026-05-15T08:06:55+02:00
cme fix dpkg-control

- - - - -
206e9759 by Andreas Tille at 2026-05-15T21:00:07+02:00
Fix test failures caused by NumPy 2.x stricter scalar conversion rules Closes: #1131063

- - - - -
e79556fd by Andreas Tille at 2026-05-15T20:00:59+01:00
Set upstream metadata fields: Documentation.

Changes-By: lintian-brush

- - - - -


5 changed files:

- debian/changelog
- debian/control
- + debian/patches/numpy2.4.patch
- debian/patches/series
- debian/upstream/metadata


Changes:

=====================================
debian/changelog
=====================================
@@ -1,3 +1,13 @@
+nipy (0.6.1-5) UNRELEASED; urgency=medium
+
+  * Team upload.
+  * cme fix dpkg-control
+  * Fix test failures caused by NumPy 2.x stricter scalar conversion rules
+    Closes: #1131063
+  * Set upstream metadata fields: Documentation.
+
+ -- Andreas Tille <tille at debian.org>  Fri, 15 May 2026 08:06:31 +0200
+
 nipy (0.6.1-4) unstable; urgency=medium
 
   * d/rules: adjust pybuild invocation for the documentation.


=====================================
debian/control
=====================================
@@ -1,50 +1,55 @@
 Source: nipy
+Standards-Version: 4.7.4
 Maintainer: Debian Med Packaging Team <debian-med-packaging at lists.alioth.debian.org>
-Uploaders: Étienne Mollier <emollier at debian.org>
+Uploaders:
+ Étienne Mollier <emollier at debian.org>,
 Section: python
 Testsuite: autopkgtest-pkg-pybuild
-Build-Depends: debhelper-compat (= 13),
-               dh-sequence-python3,
-               pybuild-plugin-pyproject,
-               python3-all-dev,
-               python3-setuptools,
-               python3-scipy,
-               python3-numpy,
-               python3-matplotlib,
-               python3-mesonpy,
-               python3-sphinx,
-               python3-ipython,
-               python3-texext,
-               python3-transforms3d <!nocheck>,
-               python3-numpydoc,
-               python3-nibabel,
-               python3-pytest,
-               python3-sympy,
-               liblapack-dev | liblapack.so,
-               libblas-dev | libblas.so,
-               cython3,
-               graphviz,
-               dvipng,
-               help2man,
-               python3-numpy-dev
-Standards-Version: 4.7.3
+Build-Depends:
+ debhelper-compat (= 13),
+ dh-sequence-python3,
+ pybuild-plugin-pyproject,
+ python3-all-dev,
+ python3-setuptools,
+ python3-scipy,
+ python3-numpy,
+ python3-matplotlib,
+ python3-mesonpy,
+ python3-sphinx,
+ python3-ipython,
+ python3-texext,
+ python3-transforms3d <!nocheck>,
+ python3-numpydoc,
+ python3-nibabel,
+ python3-pytest,
+ python3-sympy,
+ liblapack-dev | liblapack.so,
+ libblas-dev | libblas.so,
+ cython3,
+ graphviz,
+ dvipng,
+ help2man,
+ python3-numpy-dev,
 Vcs-Browser: https://salsa.debian.org/med-team/nipy
 Vcs-Git: https://salsa.debian.org/med-team/nipy.git
 Homepage: https://nipy.org/nipy/
 
 Package: python3-nipy
 Architecture: all
-Depends: ${shlibs:Depends},
-         ${misc:Depends},
-         ${python3:Depends},
-         python3-scipy,
-         python3-numpy,
-         python3-nibabel,
-         python3-nipy-lib (>= ${source:Version})
-Recommends: python3-matplotlib,
-            mayavi2,
-            python3-sympy
-Suggests: python3-mvpa
+Depends:
+ ${shlibs:Depends},
+ ${misc:Depends},
+ ${python3:Depends},
+ python3-scipy,
+ python3-numpy,
+ python3-nibabel,
+ python3-nipy-lib (>= ${source:Version}),
+Recommends:
+ python3-matplotlib,
+ mayavi2,
+ python3-sympy,
+Suggests:
+ python3-mvpa,
 Description: Analysis of structural and functional neuroimaging data
  NiPy is a Python-based framework for the analysis of structural and
  functional neuroimaging data.  It provides functionality for
@@ -61,9 +66,10 @@ Description: Analysis of structural and functional neuroimaging data
 Package: python3-nipy-lib
 Architecture: any
 Multi-Arch: same
-Depends: ${shlibs:Depends},
-         ${misc:Depends},
-         ${python3:Depends}
+Depends:
+ ${shlibs:Depends},
+ ${misc:Depends},
+ ${python3:Depends},
 Description: Analysis of structural and functional neuroimaging data (compiled modules)
  NiPy is a Python-based framework for the analysis of structural and
  functional neuroimaging data.
@@ -74,11 +80,14 @@ Package: python-nipy-doc
 Architecture: all
 Multi-Arch: foreign
 Section: doc
-Depends: libjs-mathjax,
-         ${misc:Depends},
-         ${sphinxdoc:Depends}
-Recommends: python3-nipy
-Built-Using: ${sphinxdoc:Built-Using}
+Depends:
+ libjs-mathjax,
+ ${misc:Depends},
+ ${sphinxdoc:Depends},
+Recommends:
+ python3-nipy,
+Built-Using:
+ ${sphinxdoc:Built-Using},
 Description: documentation and examples for NiPy
  This package contains NiPy documentation in various formats (HTML,
  TXT) including


=====================================
debian/patches/numpy2.4.patch
=====================================
@@ -0,0 +1,149 @@
+Description: Fix test failures caused by NumPy 2.x stricter scalar conversion rules
+Author: Andreas Tille <tille at debian.org>
+Bug-Debian: https://bugs.debian.org/1131063
+Last-Update: 2026-05-15
+
+--- a/nipy/algorithms/clustering/hierarchical_clustering.py
++++ b/nipy/algorithms/clustering/hierarchical_clustering.py
+@@ -692,7 +692,7 @@ def ward_quick(G, feature, verbose=False
+ 
+             ml = linc[j]
+             if np.sum(K.edges[ml, 1] == i) > 0:
+-                m = ml[int(np.flatnonzero(K.edges[ml, 1] == i))]
++                m = ml[int(np.flatnonzero(K.edges[ml, 1] == i)[0])]
+                 K.edges[m] = -1
+                 K.weights[m] = np.inf
+                 linc[j].remove(m)
+@@ -954,7 +954,7 @@ def ward(G, feature, verbose=False):
+ 
+         ml = linc[j]
+         if np.sum(K.edges[ml, 1] == i) > 0:
+-            m = ml[int(np.flatnonzero(K.edges[ml, 1] == i))]
++            m = ml[int(np.flatnonzero(K.edges[ml, 1] == i)[0])]
+             K.edges[m] = -1
+             K.weights[m] = np.inf
+             linc[j].remove(m)
+--- a/nipy/algorithms/graph/forest.py
++++ b/nipy/algorithms/graph/forest.py
+@@ -450,5 +450,5 @@ class Forest(WeightedGraph):
+             for i in range(self.V):
+                 if depth[i] == j:
+                     if np.size(np.unique(label[ch[i]])) == 1:
+-                        label[i] = np.unique(label[ch[i]])
++                        label[i] = np.unique(label[ch[i]])[0]
+         return label
+--- a/nipy/algorithms/registration/groupwise_registration.py
++++ b/nipy/algorithms/registration/groupwise_registration.py
+@@ -69,7 +69,7 @@ def make_grid(dims, subsampling=(1, 1, 1
+ def guess_slice_axis_and_direction(slice_info, affine):
+     if slice_info is None:
+         orient = io_orientation(affine)
+-        slice_axis = int(np.where(orient[:, 0] == 2)[0])
++        slice_axis = int(np.where(orient[:, 0] == 2)[0].flat[0])
+         slice_direction = int(orient[slice_axis, 1])
+     else:
+         slice_axis = int(slice_info[0])
+--- a/nipy/algorithms/group/parcel_analysis.py
++++ b/nipy/algorithms/group/parcel_analysis.py
+@@ -356,7 +356,7 @@ class ParcelAnalysis:
+                                    dof[i])
+             except:
+                 prob[i] = 0
+-            idx = int(np.where(self._parcel_values == values[i])[0])
++            idx = int(np.where(self._parcel_values == values[i])[0].flat[0])
+             labels += [self._parcel_labels[idx]]
+ 
+         # Sort labels by ascending order of mean values
+--- a/nipy/labs/spatial_models/mroi.py
++++ b/nipy/labs/spatial_models/mroi.py
+@@ -142,7 +142,7 @@ class SubDomains:
+         if id not in self.get_id():
+             raise ValueError("Unexisting `id` provided")
+         if roi:
+-            index = int(np.where(self.get_id() == id)[0])
++            index = int(np.where(self.get_id() == id)[0].flat[0])
+         else:
+             index = np.where(self.label == np.where(self.get_id() == id)[0])[0]
+         return index
+@@ -335,7 +335,7 @@ class SubDomains:
+                                  % (id, roi_size))
+             # update feature
+             the_feature = self.get_feature(fid, id)
+-            the_feature[self.select_id(id)] = data
++            the_feature[self.select_id(id)] = np.squeeze(data)
+         # modify all regions
+         else:
+             # check data size
+--- a/nipy/labs/bindings/tests/test_blas3.py
++++ b/nipy/labs/bindings/tests/test_blas3.py
+@@ -19,8 +19,8 @@ def test_dgemm():
+     B = np.random.rand(n2,n1)
+     C = np.random.rand(n1,n1)
+     C2 = np.random.rand(n2,n2)
+-    alpha = np.double(np.random.rand(1))
+-    beta = np.double(np.random.rand(1))
++    alpha = float(np.random.rand())
++    beta = float(np.random.rand())
+     # Test: A*B
+     Dgold = alpha*np.dot(A,B) + beta*C
+     D = blas_dgemm(0, 0, alpha, A, B, beta, C)
+@@ -37,8 +37,8 @@ def test_dsymm():
+     C = np.random.rand(n1,n2)
+     B2 = np.random.rand(n2,n1)
+     C2 = np.random.rand(n2,n1)
+-    alpha = np.double(np.random.rand(1))
+-    beta = np.double(np.random.rand(1))
++    alpha = float(np.random.rand())
++    beta = float(np.random.rand())
+     # Test: A*B
+     Dgold = alpha*np.dot(A,B) + beta*C
+     D = blas_dsymm(0, 0, alpha, A, B, beta, C)
+@@ -123,7 +123,7 @@ def test_dtrmm():
+     U = np.triu(A)
+     L = np.tril(A)
+     B = np.random.rand(n1,n1)
+-    alpha = np.double(np.random.rand(1))
++    alpha = float(np.random.rand())
+     _test_dtrXm(A, U, L, B, alpha, blas_dtrmm)
+ 
+ def test_dtrsm():
+@@ -131,14 +131,14 @@ def test_dtrsm():
+     U = np.linalg.inv(np.triu(A))
+     L = np.linalg.inv(np.tril(A))
+     B = np.random.rand(n1,n1)
+-    alpha = np.double(np.random.rand(1))
++    alpha = float(np.random.rand())
+     _test_dtrXm(A, U, L, B, alpha, blas_dtrsm)
+ 
+ def test_dsyrk():
+     A = np.random.rand(n1,n1)
+     C = np.random.rand(n1,n1)
+-    alpha = np.double(np.random.rand(1))
+-    beta = np.double(np.random.rand(1))
++    alpha = float(np.random.rand())
++    beta = float(np.random.rand())
+     # Test A*A'
+     U = np.triu(blas_dsyrk(0, 0, alpha, A, beta, C))
+     L = np.tril(blas_dsyrk(1, 0, alpha, A, beta, C))
+@@ -160,8 +160,8 @@ def test_dsyr2k():
+     A = np.random.rand(n1,n1)
+     B = np.random.rand(n1,n1)
+     C = np.random.rand(n1,n1)
+-    alpha = np.double(np.random.rand(1))
+-    beta = np.double(np.random.rand(1))
++    alpha = float(np.random.rand())
++    beta = float(np.random.rand())
+     # Test A*B' + B*A'
+     U = np.triu(blas_dsyr2k(0, 0, alpha, A, B, beta, C))
+     L = np.tril(blas_dsyr2k(1, 0, alpha, A, B, beta, C))
+--- a/nipy/algorithms/registration/tests/test_fmri_realign4d.py
++++ b/nipy/algorithms/registration/tests/test_fmri_realign4d.py
+@@ -135,7 +135,7 @@ def test_realign4d():
+     """
+     runs = [IM, IM]
+     orient = io_orientation(IM.affine)
+-    slice_axis = int(np.where(orient[:, 0] == 2)[0])
++    slice_axis = int(np.where(orient[:, 0] == 2)[0].flat[0])
+     R1 = SpaceTimeRealign(runs, tr=2., slice_times='ascending',
+                           slice_info=slice_axis)
+     R1.estimate(refscan=None, loops=1, between_loops=1, optimizer='steepest')


=====================================
debian/patches/series
=====================================
@@ -1,3 +1,4 @@
 local-mathjax.patch
 0002-FIX-Remove-deprecated-Numpy-C-API-macros.patch
 bool-type-error.patch
+numpy2.4.patch


=====================================
debian/upstream/metadata
=====================================
@@ -1,5 +1,6 @@
 Bug-Database: https://github.com/nipy/nipy/issues
 Bug-Submit: https://github.com/nipy/nipy/issues/new
+Documentation: http://nipy.org/nipy/documentation.html
 Reference:
  - Author: K. Jarrod Millman and Matthew Brett
    Title: Analysis of functional magnetic resonance imaging in Python



View it on GitLab: https://salsa.debian.org/med-team/nipy/-/compare/a2760f0d5ccbbb1cad5563521a045fad1f0de037...e79556fd853ed814818c2ac56cbc9e50a5e80d9c

-- 
View it on GitLab: https://salsa.debian.org/med-team/nipy/-/compare/a2760f0d5ccbbb1cad5563521a045fad1f0de037...e79556fd853ed814818c2ac56cbc9e50a5e80d9c
You're receiving this email because of your account on salsa.debian.org. Manage all notifications: https://salsa.debian.org/-/profile/notifications | Help: https://salsa.debian.org/help


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20260515/e159e99d/attachment-0001.htm>


More information about the debian-med-commit mailing list