1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 fetchFromGitHub,
6 flit-core,
7 psutil,
8 pytestCheckHook,
9 pyyaml,
10 pyzmq,
11 tornado,
12}:
13
14buildPythonPackage rec {
15 pname = "circus";
16 version = "0.19.0";
17 pyproject = true;
18
19 src = fetchFromGitHub {
20 owner = "circus-tent";
21 repo = "circus";
22 tag = version;
23 hash = "sha256-MiZXiGb6F8LAJLAdmEDBO8Y5cJxHJy7jMFi50Ac3Bsc=";
24 };
25
26 build-system = [ flit-core ];
27
28 dependencies = [
29 psutil
30 pyzmq
31 tornado
32 ];
33
34 nativeCheckInputs = [
35 pytestCheckHook
36 pyyaml
37 ];
38
39 # On darwin: Too many open files
40 preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
41 ulimit -n 1024
42 '';
43
44 disabledTests = [
45 # Depends on the build machine configuration
46 "test_resource_watcher_max_mem"
47 "test_resource_watcher_min_mem_abs"
48 # Compares with magic string
49 "test_streams"
50 ];
51
52 pythonImportsCheck = [ "circus" ];
53
54 __darwinAllowLocalNetworking = true;
55
56 meta = {
57 description = "Process and socket manager";
58 homepage = "https://github.com/circus-tent/circus";
59 changelog = "https://github.com/circus-tent/circus/releases/tag/${version}";
60 license = lib.licenses.asl20;
61 maintainers = with lib.maintainers; [ GaetanLepage ];
62 };
63}