diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index b98dffec5d97..6356c0c7cefe 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -1645,6 +1645,11 @@ github = "heel"; name = "Sergii Paryzhskyi"; }; + helkafen = { + email = "arnaudpourseb@gmail.com"; + github = "Helkafen"; + name = "Sébastian Méric de Bellefon"; + }; henrytill = { email = "henrytill@gmail.com"; github = "henrytill"; diff --git a/pkgs/applications/science/misc/snakemake/default.nix b/pkgs/applications/science/misc/snakemake/default.nix new file mode 100644 index 000000000000..6b0570814f2b --- /dev/null +++ b/pkgs/applications/science/misc/snakemake/default.nix @@ -0,0 +1,41 @@ +{ + stdenv +, python +}: + +python.buildPythonPackage rec { + pname = "snakemake"; + version = "5.2.2"; + + propagatedBuildInputs = with python; [ + appdirs + ConfigArgParse + datrie + docutils + jsonschema + pyyaml + ratelimiter + requests + wrapt + ]; + + src = python.fetchPypi { + inherit pname version; + sha256 = "adffe7e24b4a613a9e8bf0a2a320b3cea236d86afb9132bb0bbbc08b8e35a3a3"; + }; + + doCheck = false; # Tests depend on Google Cloud credentials at ${HOME}/gcloud-service-key.json + + meta = with stdenv.lib; { + homepage = http://snakemake.bitbucket.io; + license = licenses.mit; + description = "Python-based execution environment for make-like workflows"; + longDescription = '' + Snakemake is a workflow management system that aims to reduce the complexity of + creating workflows by providing a fast and comfortable execution environment, + together with a clean and readable specification language in Python style. Snakemake + workflows are essentially Python scripts extended by declarative code to define + rules. Rules describe how to create output files from input files. + ''; + }; +} diff --git a/pkgs/development/python-modules/ratelimiter/default.nix b/pkgs/development/python-modules/ratelimiter/default.nix new file mode 100644 index 000000000000..375b6639368e --- /dev/null +++ b/pkgs/development/python-modules/ratelimiter/default.nix @@ -0,0 +1,35 @@ +{ + stdenv +, buildPythonPackage +, fetchPypi +, pytest +, glibcLocales +}: + +buildPythonPackage rec { + pname = "ratelimiter"; + version = "1.2.0.post0"; + + src = fetchPypi { + inherit pname version; + sha256 = "5c395dcabdbbde2e5178ef3f89b568a3066454a6ddc223b76473dac22f89b4f7"; + }; + + LC_ALL = "en_US.utf-8"; + + nativeBuildInputs = [ glibcLocales ]; + + checkInputs = [ pytest ]; + + checkPhase = '' + py.test tests + ''; + + meta = with stdenv.lib; { + homepage = https://github.com/RazerM/ratelimiter; + license = licenses.asl20; + description = "Simple python rate limiting object"; + maintainers = with maintainers; [ helkafen ]; + }; +} + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 7f85ddac20a1..c95926aa6bee 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8685,6 +8685,8 @@ with pkgs; smc = callPackage ../tools/misc/smc { }; + snakemake = callPackage ../applications/science/misc/snakemake { python = python3Packages; }; + snowman = qt5.callPackage ../development/tools/analysis/snowman { }; sparse = callPackage ../development/tools/analysis/sparse { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 9a3d4c9eea11..fdbb4f90babd 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4347,6 +4347,8 @@ in { regex = callPackage ../development/python-modules/regex { }; + ratelimiter = callPackage ../development/python-modules/ratelimiter { }; + repoze_lru = buildPythonPackage rec { name = "repoze.lru-0.6";