nixpkgs/pkgs/development/python-modules/myst-nb/default.nix
2023-09-22 21:11:19 +02:00

91 lines
1.9 KiB
Nix

{ lib
, buildPythonPackage
, pythonOlder
, fetchPypi
, fetchpatch
, flit-core
, importlib-metadata
, ipython
, jupyter-cache
, nbclient
, myst-parser
, nbformat
, pyyaml
, sphinx
, sphinx-togglebutton
, typing-extensions
, ipykernel
, pythonRelaxDepsHook
}:
buildPythonPackage rec {
pname = "myst-nb";
version = "0.17.2";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-D2E4ZRX6sHxzZGrcqX//L2n0HpDTE6JgIXxbvkGdhYs=";
};
patches = [
# Fix compatiblity with myst-parser 1.0. Remove with the next release.
(fetchpatch {
url = "https://github.com/executablebooks/MyST-NB/commit/48c45c6a8c4501005766c2d821b5e9ddfbedd5fa.patch";
hash = "sha256-jGL2MjZArvPtbiaR/rRGCIi0QwYO0iTIK26GLuTrBM8=";
excludes = [
"myst_nb/__init__.py"
"docs/authoring/custom-formats.Rmd"
"docs/authoring/jupyter-notebooks.md"
"docs/index.md"
"pyproject.toml"
"tests/nb_fixtures/reporter_warnings.txt"
];
})
];
postPatch = ''
substituteInPlace pyproject.toml \
--replace "myst-parser~=0.18.0" "myst-parser"
'';
nativeBuildInputs = [
flit-core
pythonRelaxDepsHook
];
propagatedBuildInputs = [
importlib-metadata
ipython
jupyter-cache
nbclient
myst-parser
nbformat
pyyaml
sphinx
sphinx-togglebutton
typing-extensions
ipykernel
];
pythonRelaxDeps = [
"myst-parser"
];
pythonImportsCheck = [
"myst_nb"
"myst_nb.sphinx_ext"
];
meta = with lib; {
description = "A Jupyter Notebook Sphinx reader built on top of the MyST markdown parser";
homepage = "https://github.com/executablebooks/MyST-NB";
changelog = "https://github.com/executablebooks/MyST-NB/raw/v${version}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ marsam ];
};
}