1{ lib
2, buildPythonPackage
3, fetchPypi
4, ipython
5, packaging
6, tornado
7, jupyter-core
8, jupyterlab_server
9, jupyter-server
10, jupyter-server-ydoc
11, notebook
12, jinja2
13, tomli
14, pythonOlder
15, jupyter-packaging
16, pythonRelaxDepsHook
17, nbclassic
18}:
19
20buildPythonPackage rec {
21 pname = "jupyterlab";
22 version = "3.6.3";
23 format = "setuptools";
24
25 disabled = pythonOlder "3.7";
26
27 src = fetchPypi {
28 inherit pname version;
29 hash = "sha256-Nz6c+4py7dKUvhTxZmJWOiIM7PD7Jt56qxr5optom4I=";
30 };
31
32 nativeBuildInputs = [
33 jupyter-packaging
34 pythonRelaxDepsHook
35 ];
36
37 pythonRelaxDeps = [
38 "jupyter-ydoc"
39 "jupyter-server-ydoc"
40 ];
41
42 propagatedBuildInputs = [
43 ipython
44 packaging
45 tornado
46 jupyter-core
47 jupyterlab_server
48 jupyter-server
49 jupyter-server-ydoc
50 nbclassic
51 notebook
52 jinja2
53 ] ++ lib.optionals (pythonOlder "3.11") [
54 tomli
55 ];
56
57 makeWrapperArgs = [
58 "--set"
59 "JUPYTERLAB_DIR"
60 "$out/share/jupyter/lab"
61 ];
62
63 # Depends on npm
64 doCheck = false;
65
66 pythonImportsCheck = [
67 "jupyterlab"
68 ];
69
70 meta = with lib; {
71 changelog = "https://github.com/jupyterlab/jupyterlab/releases/tag/v${version}";
72 description = "Jupyter lab environment notebook server extension";
73 license = with licenses; [ bsd3 ];
74 homepage = "https://jupyter.org/";
75 maintainers = with maintainers; [ zimbatm costrouc ];
76 };
77}