1{ lib
2, buildPythonPackage
3, pythonOlder
4, fetchFromGitHub
5, hatchling
6, jupyter-server-fileid
7, jupyter-ydoc
8, ypy-websocket
9, pytest-jupyter
10, pytestCheckHook
11}:
12
13buildPythonPackage rec {
14 pname = "jupyter-server-ydoc";
15 version = "0.8.0";
16
17 disabled = pythonOlder "3.7";
18
19 format = "pyproject";
20
21 src = fetchFromGitHub {
22 owner = "jupyterlab";
23 repo = "jupyter_collaboration";
24 rev = "refs/tags/v${version}";
25 hash = "sha256-KLb7kU5jsj6ihGO6HU3Y7uF+0PcwKoQlqQAhtO0oaJw=";
26 };
27
28 postPatch = ''
29 sed -i "/^timeout/d" pyproject.toml
30 '';
31
32 nativeBuildInputs = [
33 hatchling
34 ];
35
36 propagatedBuildInputs = [
37 jupyter-server-fileid
38 jupyter-ydoc
39 ypy-websocket
40 ];
41
42 pythonImportsCheck = [ "jupyter_server_ydoc" ];
43
44 nativeCheckInputs = [
45 pytest-jupyter
46 pytestCheckHook
47 ];
48
49 preCheck = ''
50 export HOME=$TEMP
51 '';
52
53 meta = {
54 changelog = "https://github.com/jupyterlab/jupyter_collaboration/blob/${src.rev}/CHANGELOG.md";
55 description = "A Jupyter Server Extension Providing Y Documents";
56 homepage = "https://github.com/jupyterlab/jupyter_collaboration";
57 license = lib.licenses.bsd3;
58 maintainers = with lib.maintainers; [ dotlambda ];
59 };
60}