1{
2 lib,
3 buildPythonPackage,
4 pythonOlder,
5 fetchPypi,
6 hatch-jupyter-builder,
7 hatchling,
8 jupyter-server,
9 jupyterlab,
10 jupyterlab-server,
11 notebook-shim,
12 tornado,
13 pytest-jupyter,
14 pytestCheckHook,
15}:
16
17buildPythonPackage rec {
18 pname = "notebook";
19 version = "7.2.2";
20 pyproject = true;
21
22 disabled = pythonOlder "3.8";
23
24 src = fetchPypi {
25 inherit pname version;
26 hash = "sha256-LvB9QiBCFiOtP+iBGNaHvARQBVVwzdFggUpZzzocUW4=";
27 };
28
29 postPatch = ''
30 substituteInPlace pyproject.toml \
31 --replace "timeout = 300" ""
32 '';
33
34 build-system = [
35 hatch-jupyter-builder
36 hatchling
37 jupyterlab
38 ];
39
40 dependencies = [
41 jupyter-server
42 jupyterlab
43 jupyterlab-server
44 notebook-shim
45 tornado
46 ];
47
48 nativeCheckInputs = [
49 pytest-jupyter
50 pytestCheckHook
51 ];
52
53 pytestFlagsArray = [
54 "-W"
55 "ignore::DeprecationWarning"
56 ];
57
58 env = {
59 JUPYTER_PLATFORM_DIRS = 1;
60 };
61
62 # Some of the tests use localhost networking.
63 __darwinAllowLocalNetworking = true;
64
65 meta = {
66 changelog = "https://github.com/jupyter/notebook/blob/v${version}/CHANGELOG.md";
67 description = "Web-based notebook environment for interactive computing";
68 homepage = "https://github.com/jupyter/notebook";
69 license = lib.licenses.bsd3;
70 maintainers = lib.teams.jupyter.members;
71 mainProgram = "jupyter-notebook";
72 };
73}