1{ lib
2, stdenv
3, buildPythonPackage
4, fetchPypi
5, pythonOlder
6, pytestCheckHook
7, pytest-tornasync
8, argon2_cffi
9, jinja2
10, tornado
11, pyzmq
12, ipython_genutils
13, traitlets
14, jupyter_core
15, jupyter_client
16, nbformat
17, nbconvert
18, send2trash
19, terminado
20, prometheus_client
21, anyio
22, requests
23}:
24
25buildPythonPackage rec {
26 pname = "jupyter_server";
27 version = "1.5.0";
28 disabled = pythonOlder "3.6";
29
30 src = fetchPypi {
31 inherit pname version;
32 sha256 = "ff127713a57ab7aa7b23f7df9b082951cc4b05d8d64cc0949d01ea02ac24c70c";
33 };
34
35 postPatch = ''
36 substituteInPlace setup.py \
37 --replace "anyio>=2.0.2" "anyio"
38 '';
39
40 propagatedBuildInputs = [
41 argon2_cffi
42 jinja2
43 tornado
44 pyzmq
45 ipython_genutils
46 traitlets
47 jupyter_core
48 jupyter_client
49 nbformat
50 nbconvert
51 send2trash
52 terminado
53 prometheus_client
54 anyio
55 ];
56
57 checkInputs = [
58 pytestCheckHook
59 pytest-tornasync
60 requests
61 ];
62
63 preCheck = ''
64 export HOME=$(mktemp -d)
65 '';
66
67 pytestFlagsArray = [ "jupyter_server/tests/" ];
68
69 # disabled failing tests
70 disabledTests = [
71 "test_server_extension_list"
72 "test_list_formats"
73 "test_base_url"
74 "test_culling"
75 ] ++ lib.optionals stdenv.isDarwin [
76 # attempts to use trashcan, build env doesn't allow this
77 "test_delete"
78 ];
79
80 __darwinAllowLocalNetworking = true;
81
82 meta = with lib; {
83 description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications.";
84 homepage = "https://github.com/jupyter-server/jupyter_server";
85 license = licenses.bsdOriginal;
86 maintainers = [ maintainers.elohmeier ];
87 };
88}