1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 git,
6 gitMinimal,
7 nodejs,
8 writableTmpDirAsHomeHook,
9 yarn-berry_3,
10 jupyter-server,
11 hatch-jupyter-builder,
12 hatch-nodejs-version,
13 hatchling,
14 jupyterlab,
15 nbdime,
16 nbformat,
17 packaging,
18 pexpect,
19 pytest-asyncio,
20 pytest-jupyter,
21 pytest-tornasync,
22 pytestCheckHook,
23 traitlets,
24}:
25
26buildPythonPackage rec {
27 pname = "jupyterlab-git";
28 version = "0.51.2";
29 pyproject = true;
30
31 src = fetchFromGitHub {
32 owner = "jupyterlab";
33 repo = "jupyterlab-git";
34 tag = "v${version}";
35 hash = "sha256-YQWS+/GfQzkQ/n0xBq+K8lJ9tjvIRJxa3w3AzNARpDo=";
36 };
37
38 nativeBuildInputs = [
39 nodejs
40 yarn-berry_3.yarnBerryConfigHook
41 ];
42
43 offlineCache = yarn-berry_3.fetchYarnBerryDeps {
44 inherit src;
45 hash = "sha256-9GmQv4UYH+uRPgAZed6IJC+7uMKhlXvokVwd248yi/4=";
46 };
47
48 build-system = [
49 hatch-jupyter-builder
50 hatch-nodejs-version
51 hatchling
52 jupyterlab
53 ];
54
55 dependencies = [
56 jupyter-server
57 nbdime
58 nbformat
59 packaging
60 pexpect
61 traitlets
62 ];
63
64 propagatedBuildInputs = [ git ];
65
66 nativeCheckInputs = [
67 gitMinimal
68 pytest-asyncio
69 pytest-jupyter
70 pytest-tornasync
71 pytestCheckHook
72 writableTmpDirAsHomeHook
73 ];
74
75 disabledTestPaths = [
76 "jupyterlab_git/tests/test_handlers.py"
77 ];
78
79 disabledTests = [
80 "test_Git_get_nbdiff_file"
81 "test_Git_get_nbdiff_dict"
82 ];
83
84 pythonImportsCheck = [ "jupyterlab_git" ];
85
86 __darwinAllowLocalNetworking = true;
87
88 meta = with lib; {
89 description = "Jupyter lab extension for version control with Git";
90 homepage = "https://github.com/jupyterlab/jupyterlab-git";
91 changelog = "https://github.com/jupyterlab/jupyterlab-git/blob/v${version}/CHANGELOG.md";
92 license = with licenses; [ bsd3 ];
93 maintainers = with maintainers; [ chiroptical ];
94 };
95}