From 319165e4216bd37713d2cee9c6592f760c5b5b34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81tila=20Saraiva?= Date: Wed, 23 Mar 2022 15:28:45 -0300 Subject: [PATCH 1/4] codepy: init at 2019.1 --- .../python-modules/codepy/default.nix | 35 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 ++ 2 files changed, 37 insertions(+) create mode 100644 pkgs/development/python-modules/codepy/default.nix diff --git a/pkgs/development/python-modules/codepy/default.nix b/pkgs/development/python-modules/codepy/default.nix new file mode 100644 index 0000000000000..34e872249824f --- /dev/null +++ b/pkgs/development/python-modules/codepy/default.nix @@ -0,0 +1,35 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pytools +, appdirs +, six +, cgen +}: + +buildPythonPackage rec { + pname = "codepy"; + version = "2019.1"; + + src = fetchFromGitHub { + owner = "inducer"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-viMfB/nDrvDA/IGRZEX+yXylxbbmqbh/fgdYXBzK0zM="; + }; + + buildInputs = [ pytools six cgen ]; + propagatedBuildInputs = [ appdirs ]; + + pythonImportsCheck = [ "codepy" ]; + + # Tests are broken + doCheck = false; + + meta = with lib; { + homepage = "https://github.com/inducer/codepy"; + description = "Generate and execute native code at run time, from Python"; + license = licenses.mit; + maintainers = with maintainers; [ atila ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index a07866054b747..6dab521dbe7ce 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1779,6 +1779,8 @@ in { codecov = callPackage ../development/python-modules/codecov { }; + codepy = callPackage ../development/python-modules/codepy { }; + codespell = callPackage ../development/python-modules/codespell { }; cogapp = callPackage ../development/python-modules/cogapp { }; From 13dc1f09adae5b33e8997e1d2263c49e80e5d001 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81tila=20Saraiva?= Date: Wed, 23 Mar 2022 15:38:26 -0300 Subject: [PATCH 2/4] contexttimer: init at unstable-2019-03-30 --- .../python-modules/contexttimer/default.nix | 42 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 44 insertions(+) create mode 100644 pkgs/development/python-modules/contexttimer/default.nix diff --git a/pkgs/development/python-modules/contexttimer/default.nix b/pkgs/development/python-modules/contexttimer/default.nix new file mode 100644 index 0000000000000..02aeec5bfcc3c --- /dev/null +++ b/pkgs/development/python-modules/contexttimer/default.nix @@ -0,0 +1,42 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, mock +, fetchpatch +, python +}: + +buildPythonPackage rec { + pname = "contexttimer"; + version = "unstable-2019-03-30"; + + src = fetchFromGitHub { + owner = "brouberol"; + repo = "contexttimer"; + rev = "a866f420ed4c10f29abf252c58b11f9db6706100"; + sha256 = "sha256-Fc1vK1KSZWgBPtBf5dVydF6dLHEGAOslWMV0FLRdj8w="; + }; + + patches = [ + # https://github.com/brouberol/contexttimer/pull/16 + (fetchpatch { + url = "https://github.com/brouberol/contexttimer/commit/dd65871f3f25a523a47a74f2f5306c57048592b0.patch"; + hash = "sha256-vNBuFXvuvb6hWPzg4W4iyKbd4N+vofhxsKydEkc25E4="; + }) + ]; + + pythonImportCheck = [ "contexttimer" ]; + + checkInputs = [ mock ]; + + checkPhase = '' + ${python.interpreter} -m unittest tests/test_timer.py + ''; + + meta = with lib; { + homepage = "https://github.com/brouberol/contexttimer"; + description = "A timer as a context manager"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ atila ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 6dab521dbe7ce..184685a90480a 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -1867,6 +1867,8 @@ in { contextvars = callPackage ../development/python-modules/contextvars { }; + contexttimer = callPackage ../development/python-modules/contexttimer { }; + convertdate = callPackage ../development/python-modules/convertdate { }; cookiecutter = callPackage ../development/python-modules/cookiecutter { }; From fa6e7039b7c7bf9832ab6dbd7a40ce2a2c314d9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81tila=20Saraiva?= Date: Wed, 23 Mar 2022 15:44:43 -0300 Subject: [PATCH 3/4] pyrevolve: init at 2.2 --- .../python-modules/pyrevolve/default.nix | 41 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 43 insertions(+) create mode 100644 pkgs/development/python-modules/pyrevolve/default.nix diff --git a/pkgs/development/python-modules/pyrevolve/default.nix b/pkgs/development/python-modules/pyrevolve/default.nix new file mode 100644 index 0000000000000..418d30a810c48 --- /dev/null +++ b/pkgs/development/python-modules/pyrevolve/default.nix @@ -0,0 +1,41 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, contexttimer +, versioneer +, cython +, numpy +, pytest +}: + +buildPythonPackage rec { + pname = "pyrevolve"; + version = "2.2"; + + src = fetchFromGitHub { + owner = "devitocodes"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-5a4zvyf2vfz8aI6vFMI2vxekYrcUi/YuPFvZnUOx+Zs="; + }; + + nativeBuildInputs = [ versioneer cython ]; + propagatedBuildInputs = [ contexttimer ]; + + checkInputs = [ pytest numpy ]; + # Using approach bellow bcs the tests fail with the pytestCheckHook, throwing the following error + # ImportError: cannot import name 'crevolve' from partially initialized module 'pyrevolve' + # (most likely due to a circular import) + checkPhase = '' + pytest + ''; + + pythonImportsCheck = [ "pyrevolve" ]; + + meta = with lib; { + homepage = "https://github.com/devitocodes/pyrevolve"; + description = "Python library to manage checkpointing for adjoints"; + license = licenses.epl10; + maintainers = with maintainers; [ atila ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 184685a90480a..4cf3394323cd8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6349,6 +6349,8 @@ in { pypoolstation = callPackage ../development/python-modules/pypoolstation { }; + pyrevolve = callPackage ../development/python-modules/pyrevolve { }; + pyrfxtrx = callPackage ../development/python-modules/pyrfxtrx { }; pyrogram = callPackage ../development/python-modules/pyrogram { }; From 8fe808d10a1239af59ede2281d38e2bf31934ec6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81tila=20Saraiva?= Date: Wed, 23 Mar 2022 15:49:41 -0300 Subject: [PATCH 4/4] devito: init at unstable-2022-04-22 --- .../python-modules/devito/default.nix | 100 ++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 102 insertions(+) create mode 100644 pkgs/development/python-modules/devito/default.nix diff --git a/pkgs/development/python-modules/devito/default.nix b/pkgs/development/python-modules/devito/default.nix new file mode 100644 index 0000000000000..0953cbf9ec759 --- /dev/null +++ b/pkgs/development/python-modules/devito/default.nix @@ -0,0 +1,100 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, anytree +, nbval +, sympy +, scipy +, cached-property +, psutil +, py-cpuinfo +, cgen +, click +, multidict +, distributed +, pyrevolve +, codepy +, pytestCheckHook +, matplotlib +, pytest-xdist +}: + +buildPythonPackage rec { + pname = "devito"; + version = "unstable-2022-04-22"; + + src = fetchFromGitHub { + owner = "devitocodes"; + repo = "devito"; + rev = "7cb52eded4038c1a0ee92cfd04d3412c48f2fb7c"; + sha256 = "sha256-QdQRCGmXaubPPnmyJo2ha0mW5P1akRZhXZVW2TNM5yY="; + }; + + postPatch = '' + # Removing unecessary dependencies + sed -e "s/flake8.*//g" \ + -e "s/codecov.*//g" \ + -e "s/pytest.*//g" \ + -e "s/pytest-runner.*//g" \ + -e "s/pytest-cov.*//g" \ + -i requirements.txt + + # Relaxing dependencies requirements + sed -e "s/>.*//g" \ + -e "s/<.*//g" \ + -i requirements.txt + ''; + + checkInputs = [ pytestCheckHook pytest-xdist matplotlib ]; + + # I've had to disable the following tests since they fail while using nix-build, but they do pass + # outside the build. They mostly related to the usage of MPI in a sandboxed environment. + disabledTests = [ + "test_assign_parallel" + "test_gs_parallel" + "test_if_parallel" + "test_if_halo_mpi" + "test_cache_blocking_structure_distributed" + "test_mpi" + "test_codegen_quality0" + "test_new_distributor" + "test_subdomainset_mpi" + "test_init_omp_env_w_mpi" + "test_mpi_nocomms" + ]; + + disabledTestPaths = [ + "tests/test_pickle.py" + "tests/test_benchmark.py" + "tests/test_mpi.py" + "tests/test_autotuner.py" + "tests/test_data.py" + "tests/test_dse.py" + "tests/test_gradient.py" + ]; + + propagatedBuildInputs = [ + anytree + cached-property + cgen + click + codepy + distributed + nbval + multidict + psutil + py-cpuinfo + pyrevolve + scipy + sympy + ]; + + pythonImportsCheck = [ "devito" ]; + + meta = with lib; { + homepage = "https://www.devitoproject.org/"; + description = "Code generation framework for automated finite difference computation"; + license = licenses.mit; + maintainers = with maintainers; [ atila ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 4cf3394323cd8..9d3c7ffdf6c16 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2181,6 +2181,8 @@ in { detect-secrets = callPackage ../development/python-modules/detect-secrets { }; + devito = callPackage ../development/python-modules/devito { }; + devolo-home-control-api = callPackage ../development/python-modules/devolo-home-control-api { }; devolo-plc-api = callPackage ../development/python-modules/devolo-plc-api { };