diff --git a/pkgs/development/python-modules/nbexec/default.nix b/pkgs/development/python-modules/nbexec/default.nix new file mode 100644 index 000000000000..5eec122cdc59 --- /dev/null +++ b/pkgs/development/python-modules/nbexec/default.nix @@ -0,0 +1,61 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pythonOlder +# build inputs +, jupyter-client +, nbformat +, nbconvert +# check inputs +, unittestCheckHook +, ipykernel +}: +let + pname = "nbexec"; + version = "0.2.0"; +in +buildPythonPackage { + inherit pname version; + format = "setuptools"; + + disabled = pythonOlder "3.9"; + + src = fetchFromGitHub { + owner = "jsvine"; + repo = "nbexec"; + rev = "refs/tags/v${version}"; + hash = "sha256-Vv6EHX6WlnSmzQAYlO1mHnz5t078z3RQfVfte1+X2pw="; + }; + + propagatedBuildInputs = [ + jupyter-client + nbformat + nbconvert + ]; + + # TODO there is a warning about debugpy_stream missing + nativeCheckInputs = [ + unittestCheckHook + ipykernel + ]; + + preCheck = '' + export HOME=$(mktemp -d) + ''; + + unittestFlagsArray = [ + "-s" "test" "-v" + ]; + + pythonImportsCheck = [ + "nbexec" + ]; + + meta = with lib; { + description = "A dead-simple tool for executing Jupyter notebooks from the command line."; + homepage = "https://github.com/jsvine/nbexec"; + changelog = "https://github.com/jsvine/nbexec/releases/tag/v${version}"; + license = licenses.mit; + maintainers = with maintainers; [ happysalada ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 2236d8aa529e..3e828f522ba1 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -6770,6 +6770,8 @@ self: super: with self; { nbdime = callPackage ../development/python-modules/nbdime { }; + nbexec = callPackage ../development/python-modules/nbexec { }; + nbformat = callPackage ../development/python-modules/nbformat { }; nbmerge = callPackage ../development/python-modules/nbmerge { };