1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5
6 # build-system
7 cython,
8 pip,
9 pkgconfig,
10 setuptools,
11
12 # dependencies
13 mpi4py,
14 numpy,
15 precice,
16}:
17
18buildPythonPackage rec {
19 pname = "pyprecice";
20 version = "3.2.1";
21 pyproject = true;
22
23 src = fetchFromGitHub {
24 owner = "precice";
25 repo = "python-bindings";
26 tag = "v${version}";
27 hash = "sha256-8AM2wbPX54UaMO4MzLOV0TljLTAPOqR9gUbtT2McNjs=";
28 };
29
30 postPatch = ''
31 substituteInPlace pyproject.toml \
32 --replace-fail "setuptools>=61,<72" "setuptools"
33 '';
34
35 build-system = [
36 cython
37 pip
38 pkgconfig
39 setuptools
40 ];
41
42 dependencies = [
43 numpy
44 mpi4py
45 precice
46 ];
47
48 # Disable Test because everything depends on open mpi which requires network
49 doCheck = false;
50
51 # Do not use pythonImportsCheck because this will also initialize mpi which requires a network interface
52
53 meta = {
54 description = "Python language bindings for preCICE";
55 homepage = "https://github.com/precice/python-bindings";
56 changelog = "https://github.com/precice/python-bindings/blob/${src.tag}/CHANGELOG.md";
57 license = lib.licenses.lgpl3Only;
58 maintainers = with lib.maintainers; [ Scriptkiddi ];
59 };
60}