|
|
|
@ -1,11 +1,9 @@ |
|
|
|
|
{ stdenv, fetchPypi, isPy27, python, buildPythonPackage, pythonOlder |
|
|
|
|
{ lib, fetchPypi, isPy27, python, buildPythonPackage, pythonOlder |
|
|
|
|
, numpy, hdf5, cython, six, pkgconfig, unittest2, fetchpatch |
|
|
|
|
, mpi4py ? null, openssh, pytestCheckHook, cached-property }: |
|
|
|
|
|
|
|
|
|
assert hdf5.mpiSupport -> mpi4py != null && hdf5.mpi == mpi4py.mpi; |
|
|
|
|
|
|
|
|
|
with stdenv.lib; |
|
|
|
|
|
|
|
|
|
let |
|
|
|
|
mpi = hdf5.mpi; |
|
|
|
|
mpiSupport = hdf5.mpiSupport; |
|
|
|
@ -31,27 +29,26 @@ in buildPythonPackage rec { |
|
|
|
|
postConfigure = '' |
|
|
|
|
# Needed to run the tests reliably. See: |
|
|
|
|
# https://bitbucket.org/mpi4py/mpi4py/issues/87/multiple-test-errors-with-openmpi-30 |
|
|
|
|
${optionalString mpiSupport "export OMPI_MCA_rmaps_base_oversubscribe=yes"} |
|
|
|
|
${lib.optionalString mpiSupport "export OMPI_MCA_rmaps_base_oversubscribe=yes"} |
|
|
|
|
''; |
|
|
|
|
|
|
|
|
|
preBuild = if mpiSupport then "export CC=${mpi}/bin/mpicc" else ""; |
|
|
|
|
|
|
|
|
|
# tests now require pytest-mpi, which isn't available and difficult to package |
|
|
|
|
doCheck = false; |
|
|
|
|
checkInputs = optional isPy27 unittest2 ++ [ pytestCheckHook openssh ]; |
|
|
|
|
checkInputs = lib.optional isPy27 unittest2 ++ [ pytestCheckHook openssh ]; |
|
|
|
|
nativeBuildInputs = [ pkgconfig cython ]; |
|
|
|
|
buildInputs = [ hdf5 ] |
|
|
|
|
++ optional mpiSupport mpi; |
|
|
|
|
++ lib.optional mpiSupport mpi; |
|
|
|
|
propagatedBuildInputs = [ numpy six] |
|
|
|
|
++ optionals mpiSupport [ mpi4py openssh ] |
|
|
|
|
++ optionals (pythonOlder "3.8") [ cached-property ]; |
|
|
|
|
++ lib.optionals mpiSupport [ mpi4py openssh ] |
|
|
|
|
++ lib.optionals (pythonOlder "3.8") [ cached-property ]; |
|
|
|
|
|
|
|
|
|
pythonImportsCheck = [ "h5py" ]; |
|
|
|
|
|
|
|
|
|
meta = { |
|
|
|
|
description = |
|
|
|
|
"Pythonic interface to the HDF5 binary data format"; |
|
|
|
|
meta = with lib; { |
|
|
|
|
description = "Pythonic interface to the HDF5 binary data format"; |
|
|
|
|
homepage = "http://www.h5py.org/"; |
|
|
|
|
license = stdenv.lib.licenses.bsd2; |
|
|
|
|
license = licenses.bsd2; |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|