1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 fetchPypi,
6 flit-core,
7 psutil,
8 pytestCheckHook,
9 pyyaml,
10 pyzmq,
11 tornado,
12}:
13
14buildPythonPackage rec {
15 pname = "circus";
16 version = "0.18.0";
17 format = "pyproject";
18
19 src = fetchPypi {
20 inherit pname version;
21 hash = "sha256-GTzoIk4GjO1mckz0gxBvtmdLUaV1g6waDn7Xp+6Mcas=";
22 };
23
24 nativeBuildInputs = [ flit-core ];
25
26 propagatedBuildInputs = [
27 psutil
28 pyzmq
29 tornado
30 ];
31
32 nativeCheckInputs = [
33 pytestCheckHook
34 pyyaml
35 ];
36
37 # On darwin: Too many open files
38 preCheck = lib.optionalString stdenv.isDarwin ''
39 ulimit -n 1024
40 '';
41
42 disabledTests = [
43 # these tests raise circus.tests.support.TimeoutException
44 "test_reload1"
45 "test_reload2"
46 "test_reload_sequential"
47 "test_reload_uppercase"
48 "test_reload_wid_1_worker"
49 "test_reload_wid_4_workers"
50 "test_add"
51 "test_add_start"
52 "test_command_already_running"
53 "test_launch_cli"
54 "test_handler"
55 "test_resource_watcher_max_cpu"
56 "test_resource_watcher_max_mem"
57 "test_resource_watcher_max_mem_abs"
58 "test_resource_watcher_min_cpu"
59 "test_resource_watcher_min_mem"
60 "test_resource_watcher_min_mem_abs"
61 "test_full_stats"
62 "test_watchdog_discovery_found"
63 "test_watchdog_discovery_not_found"
64 "test_dummy"
65 "test_handler"
66 "test_stdin_socket"
67 "test_stop_and_restart"
68 "test_stream"
69 "test_inherited"
70 "test_set_before_launch"
71 "test_set_by_arbiter"
72 "test_max_age"
73 "test_signal"
74 "test_exits_within_graceful_timeout"
75 "test_kills_after_graceful_timeout"
76 # this test requires socket communication
77 "test_plugins"
78 ];
79
80 pythonImportsCheck = [ "circus" ];
81
82 meta = with lib; {
83 description = "A process and socket manager";
84 homepage = "https://github.com/circus-tent/circus";
85 license = licenses.asl20;
86 };
87}