1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 pythonOlder,
6 hatch-nodejs-version,
7 hatchling,
8 importlib-metadata,
9 pycrdt,
10 pytestCheckHook,
11 websockets,
12 ypy-websocket,
13}:
14
15buildPythonPackage rec {
16 pname = "jupyter-ydoc";
17 version = "2.0.1";
18 pyproject = true;
19
20 disabled = pythonOlder "3.7";
21
22 src = fetchPypi {
23 pname = "jupyter_ydoc";
24 inherit version;
25 hash = "sha256-cW3ajLiviB/sL7yIrqP7DTuyS764Cpmor/LgHQidWw0=";
26 };
27
28 nativeBuildInputs = [
29 hatch-nodejs-version
30 hatchling
31 ];
32
33 propagatedBuildInputs = [ pycrdt ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
34
35 pythonImportsCheck = [ "jupyter_ydoc" ];
36
37 nativeCheckInputs = [
38 pytestCheckHook
39 websockets
40 ypy-websocket
41 ];
42
43 # requires a Node.js environment
44 doCheck = false;
45
46 meta = {
47 changelog = "https://github.com/jupyter-server/jupyter_ydoc/blob/v${version}/CHANGELOG.md";
48 description = "Document structures for collaborative editing using Ypy";
49 homepage = "https://github.com/jupyter-server/jupyter_ydoc";
50 license = lib.licenses.bsd3;
51 maintainers = lib.teams.jupyter.members;
52 };
53}