about summary refs log tree commit diff
path: root/pkgs/development/python-modules/h5py/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules/h5py/default.nix')
-rw-r--r--pkgs/development/python-modules/h5py/default.nix67
1 files changed, 40 insertions, 27 deletions
diff --git a/pkgs/development/python-modules/h5py/default.nix b/pkgs/development/python-modules/h5py/default.nix
index 4afd562e033dc..b2bd668d679bf 100644
--- a/pkgs/development/python-modules/h5py/default.nix
+++ b/pkgs/development/python-modules/h5py/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, oldest-supported-numpy
-, setuptools
-, wheel
-, numpy
-, hdf5
-, cython_0
-, pkgconfig
-, mpi4py ? null
-, openssh
-, pytestCheckHook
-, cached-property
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  setuptools,
+  wheel,
+  numpy,
+  hdf5,
+  cython_0,
+  pkgconfig,
+  mpi4py ? null,
+  openssh,
+  pytestCheckHook,
+  cached-property,
 }:
 
 assert hdf5.mpiSupport -> mpi4py != null && hdf5.mpi == mpi4py.mpi;
@@ -20,22 +20,29 @@ assert hdf5.mpiSupport -> mpi4py != null && hdf5.mpi == mpi4py.mpi;
 let
   mpi = hdf5.mpi;
   mpiSupport = hdf5.mpiSupport;
-in buildPythonPackage rec {
-  version = "3.10.0";
+in
+buildPythonPackage rec {
+  version = "3.11.0";
   pname = "h5py";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2TrcSM7rMzR+skpjT7eH78euRkTm6kunM9CZYFBFwEk=";
+    hash = "sha256-e36PeAcqLt7IfJg28l80ID/UkqRHVwmhi0F6M8+yH6k=";
   };
 
+  patches = [
+    # Unlock an overly strict locking of mpi4py version (seems not to be necessary).
+    # See also: https://github.com/h5py/h5py/pull/2418/files#r1589372479
+    ./mpi4py-requirement.patch
+  ];
+
   # avoid strict pinning of numpy
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace "mpi4py ==" "mpi4py >="
+    substituteInPlace pyproject.toml \
+      --replace-fail "numpy >=2.0.0rc1" "numpy"
   '';
 
   HDF5_DIR = "${hdf5}";
@@ -51,22 +58,28 @@ in buildPythonPackage rec {
 
   nativeBuildInputs = [
     cython_0
-    oldest-supported-numpy
+    numpy
     pkgconfig
     setuptools
     wheel
   ];
 
-  buildInputs = [ hdf5 ]
-    ++ lib.optional mpiSupport mpi;
+  buildInputs = [ hdf5 ] ++ lib.optional mpiSupport mpi;
 
-  propagatedBuildInputs = [ numpy ]
-    ++ lib.optionals mpiSupport [ mpi4py openssh ]
+  propagatedBuildInputs =
+    [ numpy ]
+    ++ lib.optionals mpiSupport [
+      mpi4py
+      openssh
+    ]
     ++ lib.optionals (pythonOlder "3.8") [ cached-property ];
 
   # tests now require pytest-mpi, which isn't available and difficult to package
   doCheck = false;
-  nativeCheckInputs = [ pytestCheckHook openssh ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    openssh
+  ];
 
   pythonImportsCheck = [ "h5py" ];