summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Engmark <victor@engmark.name>2023-07-27 16:11:17 +1200
committergithub-actions[bot] <github-actions[bot]@users.noreply.github.com>2023-08-14 21:26:28 +0000
commitbee09858ceef2102a3bc232bc60ed259607d5eca (patch)
tree592d7463b4e823f9d1ec3bb2d2d70fea1b8ac613
parentblacken-docs: init at 1.15.0 (diff)
downloadnixpkgs-origin/backport-245670-to-release-23.05.tar.gz
Co-authored-by: OTABI Tomoya <tomoya.otabi@gmail.com> Co-authored-by: Kirill Radzikhovskyy <kirillrdy@gmail.com> (cherry picked from commit ba9b639ddd505853c3a91037e727758184a27589)
-rw-r--r--pkgs/tools/misc/nbqa/default.nix93
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 95 insertions, 0 deletions
diff --git a/pkgs/tools/misc/nbqa/default.nix b/pkgs/tools/misc/nbqa/default.nix
new file mode 100644
index 000000000000..214ab79abd63
--- /dev/null
+++ b/pkgs/tools/misc/nbqa/default.nix
@@ -0,0 +1,93 @@
+{ black
+, blacken-docs
+, fetchFromGitHub
+, lib
+, python3
+, ruff
+}:
+python3.pkgs.buildPythonApplication rec {
+ pname = "nbqa";
+ version = "1.7.0";
+
+ src = fetchFromGitHub {
+ owner = "nbQA-dev";
+ repo = "nbQA";
+ rev = version;
+ hash = "sha256-CTF5HisBS44Ta18cVT04UrMIF30WmEBwZBGW7fkKXwk=";
+ };
+
+ passthru.optional-dependencies = {
+ black = [ black ];
+ blacken-docs = [ blacken-docs ];
+ flake8 = [ python3.pkgs.flake8 ];
+ isort = [ python3.pkgs.isort ];
+ jupytext = [ python3.pkgs.jupytext ];
+ mypy = [ python3.pkgs.mypy ];
+ pylint = [ python3.pkgs.pylint ];
+ pyupgrade = [ python3.pkgs.pyupgrade ];
+ ruff = [ ruff ];
+ };
+
+ propagatedBuildInputs = with python3.pkgs;
+ [
+ autopep8
+ ipython
+ tokenize-rt
+ tomli
+ ]
+ ++ builtins.attrValues passthru.optional-dependencies;
+
+ postPatch = ''
+ # Force using the Ruff executable rather than the Python package
+ substituteInPlace nbqa/__main__.py --replace 'if shell:' 'if shell or main_command == "ruff":'
+ '';
+
+ preCheck = ''
+ # Allow the tests to run `nbqa` itself from the path
+ export PATH="$out/bin":"$PATH"
+ '';
+
+ nativeCheckInputs =
+ [
+ black
+ ruff
+ ]
+ ++ (with python3.pkgs; [
+ autoflake
+ flake8
+ isort
+ jupytext
+ mdformat
+ pre-commit-hooks
+ pydocstyle
+ pylint
+ pytestCheckHook
+ pyupgrade
+ yapf
+ ]);
+
+ disabledTests = [
+ # Test data not found
+ "test_black_multiple_files"
+ "test_black_return_code"
+ "test_grep"
+ "test_jupytext_on_folder"
+ "test_mypy_works"
+ "test_running_in_different_dir_works"
+ "test_unable_to_reconstruct_message_pythonpath"
+ "test_with_subcommand"
+ ];
+
+ disabledTestPaths = [
+ # Test data not found
+ "tests/test_include_exclude.py"
+ ];
+
+ meta = with lib; {
+ homepage = "https://github.com/nbQA-dev/nbQA";
+ changelog = "https://nbqa.readthedocs.io/en/latest/history.html";
+ description = "Run ruff, isort, pyupgrade, mypy, pylint, flake8, black, blacken-docs, and more on Jupyter Notebooks";
+ license = licenses.mit;
+ maintainers = with maintainers; [ l0b0 ];
+ };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8bc796bbd48c..6fc788b143d0 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -10488,6 +10488,8 @@ with pkgs;
nb = callPackage ../tools/misc/nb { };
+ nbqa = callPackage ../tools/misc/nbqa { };
+
kb = callPackage ../tools/misc/kb { };
notable = callPackage ../applications/misc/notable { };