diff options
Diffstat (limited to 'pkgs/development/python-modules/h5py/default.nix')
-rw-r--r-- | pkgs/development/python-modules/h5py/default.nix | 67 |
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" ]; |