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.nix54
1 files changed, 34 insertions, 20 deletions
diff --git a/pkgs/development/python-modules/h5py/default.nix b/pkgs/development/python-modules/h5py/default.nix
index bc23ce61c1765..b2bd668d679bf 100644
--- a/pkgs/development/python-modules/h5py/default.nix
+++ b/pkgs/development/python-modules/h5py/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, 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;
@@ -19,7 +20,8 @@ assert hdf5.mpiSupport -> mpi4py != null && hdf5.mpi == mpi4py.mpi;
 let
   mpi = hdf5.mpi;
   mpiSupport = hdf5.mpiSupport;
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   version = "3.11.0";
   pname = "h5py";
   pyproject = true;
@@ -31,6 +33,12 @@ in buildPythonPackage rec {
     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 pyproject.toml \
@@ -56,16 +64,22 @@ in buildPythonPackage rec {
     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" ];