1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 git,
6 jupyter-server,
7 hatch-jupyter-builder,
8 hatch-nodejs-version,
9 hatchling,
10 jupyterlab,
11 nbdime,
12 nbformat,
13 pexpect,
14 pytest-asyncio,
15 pytest-jupyter,
16 pytest-tornasync,
17 pytestCheckHook,
18 pythonOlder,
19 traitlets,
20}:
21
22buildPythonPackage rec {
23 pname = "jupyterlab-git";
24 version = "0.50.1";
25 pyproject = true;
26
27 disabled = pythonOlder "3.8";
28
29 src = fetchPypi {
30 pname = "jupyterlab_git";
31 inherit version;
32 hash = "sha256-v08Go/vCsquE6l1SMmqg4LjM9OmjNX+jGKEZVg4cak0=";
33 };
34
35 nativeBuildInputs = [
36 hatch-jupyter-builder
37 hatch-nodejs-version
38 hatchling
39 jupyterlab
40 ];
41
42 propagatedBuildInputs = [
43 jupyter-server
44 nbdime
45 git
46 nbformat
47 pexpect
48 traitlets
49 ];
50
51 nativeCheckInputs = [
52 jupyterlab
53 pytest-asyncio
54 pytest-jupyter
55 pytest-tornasync
56 pytestCheckHook
57 ];
58
59 preCheck = ''
60 export HOME=$TMPDIR
61 '';
62
63 disabledTestPaths = [
64 "jupyterlab_git/tests/test_handlers.py"
65 # PyPI doesn't ship all required files for the tests
66 "jupyterlab_git/tests/test_config.py"
67 "jupyterlab_git/tests/test_integrations.py"
68 "jupyterlab_git/tests/test_remote.py"
69 "jupyterlab_git/tests/test_settings.py"
70 ];
71
72 disabledTests = [
73 "test_Git_get_nbdiff_file"
74 "test_Git_get_nbdiff_dict"
75 ];
76
77 pythonImportsCheck = [ "jupyterlab_git" ];
78
79 __darwinAllowLocalNetworking = true;
80
81 meta = with lib; {
82 description = "Jupyter lab extension for version control with Git";
83 homepage = "https://github.com/jupyterlab/jupyterlab-git";
84 changelog = "https://github.com/jupyterlab/jupyterlab-git/blob/v${version}/CHANGELOG.md";
85 license = with licenses; [ bsd3 ];
86 maintainers = with maintainers; [ chiroptical ];
87 };
88}