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