1{ stdenv
2, lib
3, buildPythonPackage
4, fetchFromGitHub
5, numpy
6, scipy
7, matplotlib
8, pyparsing
9, tables
10, cython
11, python
12, sympy
13, meshio
14, mpi4py
15, psutil
16, openssh
17, pyvista
18, pytest
19, pythonOlder
20}:
21
22buildPythonPackage rec {
23 pname = "sfepy";
24 version = "2023.1";
25 disabled = pythonOlder "3.8";
26
27 src = fetchFromGitHub {
28 owner = "sfepy";
29 repo = "sfepy";
30 rev = "release_${version}";
31 hash = "sha256-PuU6DL9zftHltpYI9VZQzKGIP8l9UUU8GVChrHtpNM0=";
32 };
33
34 propagatedBuildInputs = [
35 numpy
36 cython
37 scipy
38 matplotlib
39 pyparsing
40 tables
41 sympy
42 meshio
43 mpi4py
44 psutil
45 openssh
46 pyvista
47 ];
48
49 postPatch = ''
50 # slow tests
51 rm sfepy/tests/test_io.py
52 rm sfepy/tests/test_elasticity_small_strain.py
53 rm sfepy/tests/test_term_call_modes.py
54 rm sfepy/tests/test_refine_hanging.py
55 rm sfepy/tests/test_hyperelastic_tlul.py
56 rm sfepy/tests/test_poly_spaces.py
57 rm sfepy/tests/test_linear_solvers.py
58 rm sfepy/tests/test_quadratures.py
59 '';
60
61 nativeCheckInputs = [
62 pytest
63 ];
64
65 checkPhase = ''
66 export OMPI_MCA_plm_rsh_agent=${openssh}/bin/ssh
67 export HOME=$TMPDIR
68 mv sfepy sfepy.hidden
69 mkdir -p $HOME/.matplotlib
70 echo "backend: ps" > $HOME/.matplotlib/matplotlibrc
71 ${python.interpreter} -c "import sfepy; sfepy.test()"
72 '';
73
74 meta = with lib; {
75 homepage = "https://sfepy.org/";
76 description = "Simple Finite Elements in Python";
77 license = licenses.bsd3;
78 maintainers = with maintainers; [ wd15 ];
79 };
80}