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