1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 contexttimer,
6 setuptools,
7 versioneer,
8 cython_0,
9 numpy,
10 pytestCheckHook,
11 pythonOlder,
12}:
13
14buildPythonPackage rec {
15 pname = "pyrevolve";
16 version = "2.2.6";
17 format = "pyproject";
18
19 disabled = pythonOlder "3.7";
20
21 src = fetchFromGitHub {
22 owner = "devitocodes";
23 repo = pname;
24 tag = "v${version}";
25 hash = "sha256-jjiFOlxXjaa4L4IEtojeeS0jx4GsftAeIGBpJLhUcY4=";
26 };
27
28 postPatch = ''
29 substituteInPlace setup.py \
30 --replace ', "flake8"' ""
31 '';
32
33 nativeBuildInputs = [
34 cython_0
35 setuptools
36 versioneer
37 ];
38
39 propagatedBuildInputs = [
40 contexttimer
41 numpy
42 ];
43
44 nativeCheckInputs = [ pytestCheckHook ];
45
46 preCheck = ''
47 rm -rf pyrevolve
48 '';
49
50 pythonImportsCheck = [ "pyrevolve" ];
51
52 meta = with lib; {
53 homepage = "https://github.com/devitocodes/pyrevolve";
54 changelog = "https://github.com/devitocodes/pyrevolve/releases/tag/${src.tag}";
55 description = "Python library to manage checkpointing for adjoints";
56 license = licenses.epl10;
57 maintainers = with maintainers; [ atila ];
58 };
59}