1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 hatchling,
6 hatch-jupyter-builder,
7 hatch-nodejs-version,
8 ipywidgets,
9 jupyterlab,
10}:
11
12buildPythonPackage rec {
13 pname = "ipylab";
14 version = "1.1.0";
15 pyproject = true;
16
17 # This needs to be fetched from Pypi, as we rely on the nodejs build to be skipped,
18 # which only happens if ipylab/labextension/style.js is present.
19 src = fetchPypi {
20 inherit pname version;
21 hash = "sha256-85hYpNnvbsuC+O/uufa1oBo6ZNTzxPKl/i1YrllN4hI=";
22 };
23
24 build-system = [
25 hatchling
26 hatch-jupyter-builder
27 hatch-nodejs-version
28 jupyterlab
29 ];
30
31 dependencies = [
32 ipywidgets
33 ];
34
35 pythonImportsCheck = [ "ipylab" ];
36
37 # There are no tests
38 doCheck = false;
39
40 meta = {
41 description = "Control JupyterLab from Python notebooks";
42 homepage = "https://github.com/jtpio/ipylab";
43 changelog = "https://github.com/jtpio/ipylab/releases/tag/v${version}";
44 license = lib.licenses.bsd3;
45 maintainers = with lib.maintainers; [ flokli ];
46 };
47}