1{ stdenv
2, lib
3, buildPythonPackage
4, fetchPypi
5, argon2_cffi
6, nose
7, nose_warnings_filters
8, glibcLocales
9, isPy3k
10, mock
11, jinja2
12, tornado
13, ipython_genutils
14, traitlets
15, jupyter
16, jupyter_core
17, jupyter_client
18, nbformat
19, nbconvert
20, ipykernel
21, terminado
22, requests
23, send2trash
24, pexpect
25, prometheus_client
26, pytestCheckHook
27}:
28
29buildPythonPackage rec {
30 pname = "notebook";
31 version = "6.1.4";
32 disabled = !isPy3k;
33
34 src = fetchPypi {
35 inherit pname version;
36 sha256 = "0cnyi4zd3byh7zixdj2q71axm31xgjiyfklh1c63c87acgwh2zb8";
37 };
38
39 LC_ALL = "en_US.utf8";
40
41 checkInputs = [ nose pytestCheckHook glibcLocales ]
42 ++ (if isPy3k then [ nose_warnings_filters ] else [ mock ]);
43
44 propagatedBuildInputs = [
45 jinja2 tornado ipython_genutils traitlets jupyter_core send2trash
46 jupyter_client nbformat nbconvert ipykernel terminado requests pexpect
47 prometheus_client argon2_cffi
48 ];
49
50 # disable warning_filters
51 preCheck = lib.optionalString (!isPy3k) ''
52 echo "" > setup.cfg
53 '';
54
55 postPatch = ''
56 # Remove selenium tests
57 rm -rf notebook/tests/selenium
58 export HOME=$TMPDIR
59 '';
60
61 disabledTests = [
62 # a "system_config" is generated, and fails many tests
63 "config"
64 "load_ordered"
65 # requires jupyter, but will cause circular imports
66 "test_run"
67 "TestInstallServerExtension"
68 "launch_socket"
69 "sock_server"
70 ]
71 ++ lib.optional stdenv.isDarwin [
72 "test_delete"
73 "test_checkpoints_follow_file"
74 ];
75
76 # Some of the tests use localhost networking.
77 __darwinAllowLocalNetworking = true;
78
79 meta = {
80 description = "The Jupyter HTML notebook is a web-based notebook environment for interactive computing";
81 homepage = "https://jupyter.org/";
82 license = lib.licenses.bsd3;
83 maintainers = with lib.maintainers; [ fridh ];
84 };
85}