1{
2 lib,
3 buildPythonPackage,
4 numpy,
5 scipy,
6 pyamg,
7 future,
8 matplotlib,
9 tkinter,
10 mpi4py,
11 scikit-fmm,
12 gmsh,
13 python,
14 stdenv,
15 openssh,
16 fetchFromGitHub,
17 pythonOlder,
18}:
19
20buildPythonPackage rec {
21 pname = "fipy";
22 version = "3.4.4";
23 format = "setuptools";
24
25 disabled = pythonOlder "3.7";
26
27 src = fetchFromGitHub {
28 owner = "usnistgov";
29 repo = "fipy";
30 rev = "refs/tags/${version}";
31 hash = "sha256-XZpm+gzysR2OXBcxWUEjP1PlaLuOL2NpmeKMCH+OEb4=";
32 };
33
34 propagatedBuildInputs = [
35 numpy
36 scipy
37 pyamg
38 matplotlib
39 tkinter
40 mpi4py
41 future
42 scikit-fmm
43 openssh
44 ] ++ lib.optionals (!stdenv.isDarwin) [ gmsh ];
45
46 nativeCheckInputs = lib.optionals (!stdenv.isDarwin) [ gmsh ];
47
48 checkPhase = ''
49 export OMPI_MCA_plm_rsh_agent=${openssh}/bin/ssh
50 ${python.interpreter} setup.py test --modules
51 '';
52
53 pythonImportsCheck = [ "fipy" ];
54
55 meta = with lib; {
56 homepage = "https://www.ctcms.nist.gov/fipy/";
57 description = "A Finite Volume PDE Solver Using Python";
58 changelog = "https://github.com/usnistgov/fipy/blob/${version}/CHANGELOG.rst";
59 license = licenses.free;
60 maintainers = with maintainers; [ wd15 ];
61 };
62}