Merge pull request #307098 from r-ryantm/auto-update/cilium-cli
[NixPkgs.git] / pkgs / development / python-modules / mpi4py / default.nix
blobb5f4e403ab38d4b3ae9db562593cbb2d2fc461a8
1 { lib, fetchPypi, fetchpatch, python, buildPythonPackage
2 , mpi, mpiCheckPhaseHook, openssh
3 }:
5 buildPythonPackage rec {
6   pname = "mpi4py";
7   version = "3.1.5";
8   format = "setuptools";
10   src = fetchPypi {
11     inherit pname version;
12     hash = "sha256-pwbnbbklUTXC+10e9Uy097DkrZ4zy62n3idiYgXyoVM=";
13   };
15   passthru = {
16     inherit mpi;
17   };
19   postPatch = ''
20     substituteInPlace test/test_spawn.py --replace \
21                       "unittest.skipMPI('openmpi(<3.0.0)')" \
22                       "unittest.skipMPI('openmpi')"
23   '';
25   configurePhase = "";
27   installPhase = ''
28     mkdir -p "$out/${python.sitePackages}"
29     export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
31     ${python}/bin/${python.executable} setup.py install \
32       --install-lib=$out/${python.sitePackages} \
33       --prefix="$out"
35     # --install-lib:
36     # sometimes packages specify where files should be installed outside the usual
37     # python lib prefix, we override that back so all infrastructure (setup hooks)
38     # work as expected
39   '';
41   nativeBuildInputs = [ mpi ];
43   __darwinAllowLocalNetworking = true;
45   nativeCheckInputs = [ openssh mpiCheckPhaseHook ];
47   meta = with lib; {
48     description = "Python bindings for the Message Passing Interface standard";
49     homepage = "https://github.com/mpi4py/mpi4py";
50     license = licenses.bsd2;
51   };