diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index d3e8932ac1e..2b5fbd67dfb 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -539,6 +539,11 @@ github = "boothead"; name = "Ben Ford"; }; + borisbabic = { + email = "boris.ivan.babic@gmail.com"; + github = "borisbabic"; + name = "Boris Babić"; + }; bosu = { email = "boriss@gmail.com"; github = "bosu"; diff --git a/pkgs/applications/version-management/git-and-tools/default.nix b/pkgs/applications/version-management/git-and-tools/default.nix index 513ff4a8ecd..2093c86b050 100644 --- a/pkgs/applications/version-management/git-and-tools/default.nix +++ b/pkgs/applications/version-management/git-and-tools/default.nix @@ -111,6 +111,8 @@ let hubUnstable = throw "use gitAndTools.hub instead"; + pre-commit = callPackage ./pre-commit { }; + qgit = qt5.callPackage ./qgit { }; stgit = callPackage ./stgit { diff --git a/pkgs/applications/version-management/git-and-tools/pre-commit/default.nix b/pkgs/applications/version-management/git-and-tools/pre-commit/default.nix new file mode 100644 index 00000000000..d125672f8ca --- /dev/null +++ b/pkgs/applications/version-management/git-and-tools/pre-commit/default.nix @@ -0,0 +1,31 @@ +{ stdenv, python3Packages }: +with python3Packages; buildPythonApplication rec { + pname = "pre_commit"; + version = "1.10.4"; + + src = fetchPypi { + inherit pname version; + sha256 = "1kn8h9k9ca330m5n7r4cvxp679y3sc95m1x23a3qhzgam09n7jwr"; + }; + + propagatedBuildInputs = [ + aspy-yaml + cached-property + cfgv + identify + nodeenv + six + toml + virtualenv + ]; + + # Tests fail due to a missing windll dependency + doCheck = false; + + meta = with stdenv.lib; { + description = "A framework for managing and maintaining multi-language pre-commit hooks"; + homepage = https://pre-commit.com/; + license = licenses.mit; + maintainers = with maintainers; [ borisbabic ]; + }; +} diff --git a/pkgs/development/python-modules/aspy.yaml/default.nix b/pkgs/development/python-modules/aspy.yaml/default.nix new file mode 100644 index 00000000000..4f07c09e159 --- /dev/null +++ b/pkgs/development/python-modules/aspy.yaml/default.nix @@ -0,0 +1,22 @@ +{ lib, buildPythonPackage, fetchPypi, pyyaml }: + +buildPythonPackage rec { + pname = "aspy.yaml"; + version = "1.1.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "1ajb97kn044ximkzq2090h4yblrhw77540pwiw345cp7mwzy4xqa"; + }; + + propagatedBuildInputs = [ pyyaml ]; + + # Tests not included in PyPI tarball + doCheck = false; + + meta = with lib; { + description = "A few extensions to pyyaml"; + homepage = https://github.com/asottile/aspy.yaml; + license = licenses.mit; + }; +} diff --git a/pkgs/development/python-modules/cfgv/default.nix b/pkgs/development/python-modules/cfgv/default.nix new file mode 100644 index 00000000000..2212486978d --- /dev/null +++ b/pkgs/development/python-modules/cfgv/default.nix @@ -0,0 +1,22 @@ +{ lib, buildPythonPackage, fetchPypi, six }: + +buildPythonPackage rec { + pname = "cfgv"; + version = "1.1.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "1akm5xdbi5kckgnhhfj6qavjwakm44cwqzhfx2ycgh7mkym1qyfi"; + }; + + propagatedBuildInputs = [ six ]; + + # Tests not included in PyPI tarball + doCheck = false; + + meta = with lib; { + description = "Validate configuration and produce human readable error messages"; + homepage = https://github.com/asottile/cfgv; + license = licenses.mit; + }; +} diff --git a/pkgs/development/python-modules/identify/default.nix b/pkgs/development/python-modules/identify/default.nix new file mode 100644 index 00000000000..b4b5d9c8727 --- /dev/null +++ b/pkgs/development/python-modules/identify/default.nix @@ -0,0 +1,20 @@ +{ lib, buildPythonPackage, fetchPypi }: + +buildPythonPackage rec { + pname = "identify"; + version = "1.1.4"; + + src = fetchPypi { + inherit pname version; + sha256 = "0hvwfpf6fmgn93abrvj88pi7sbcib32s4c5r99lw67kbziq5x129"; + }; + + # Tests not included in PyPI tarball + doCheck = false; + + meta = with lib; { + description = "File identification library for Python"; + homepage = https://github.com/chriskuehl/identify; + license = licenses.mit; + }; +} diff --git a/pkgs/development/python-modules/nodeenv/default.nix b/pkgs/development/python-modules/nodeenv/default.nix new file mode 100644 index 00000000000..ce4a2772d50 --- /dev/null +++ b/pkgs/development/python-modules/nodeenv/default.nix @@ -0,0 +1,20 @@ +{ lib, buildPythonPackage, fetchPypi }: + +buildPythonPackage rec { + pname = "nodeenv"; + version = "1.3.2"; + + src = fetchPypi { + inherit pname version; + sha256 = "0vs9nyf9w3655j1vv3abxj4vbig61c0hjmhpfb91gblv32shl15a"; + }; + + # Tests not included in PyPI tarball + doCheck = false; + + meta = with lib; { + description = "Node.js virtual environment builder"; + homepage = https://github.com/ekalinin/nodeenv; + license = licenses.bsd3; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index baf13d2d864..285cdaf991b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -186,6 +186,8 @@ in { asn1crypto = callPackage ../development/python-modules/asn1crypto { }; + aspy-yaml = callPackage ../development/python-modules/aspy.yaml { }; + astral = callPackage ../development/python-modules/astral { }; astropy = callPackage ../development/python-modules/astropy { }; @@ -1520,6 +1522,8 @@ in { cherrypy = callPackage ../development/python-modules/cherrypy {}; + cfgv = callPackage ../development/python-modules/cfgv { }; + cftime = callPackage ../development/python-modules/cftime {}; cjson = callPackage ../development/python-modules/cjson { }; @@ -3050,6 +3054,8 @@ in { idna-ssl = callPackage ../development/python-modules/idna-ssl { }; + identify = callPackage ../development/python-modules/identify { }; + ijson = callPackage ../development/python-modules/ijson {}; imagesize = buildPythonPackage rec { @@ -8440,6 +8446,8 @@ in { inherit (pkgs) which; }; + nodeenv = callPackage ../development/python-modules/nodeenv { }; + nose = buildPythonPackage rec { version = "1.3.7"; name = "nose-${version}";