Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / python-modules / dramatiq / default.nix
blob84da4beadd79493dffd11a7b7d0312fc9022cafb
1 { lib
2 , stdenv
3 , buildPythonPackage
4 , pythonOlder
5 , fetchFromGitHub
6 , gevent
7 , pika
8 , prometheus-client
9 , pylibmc
10 , pytestCheckHook
11 , redis
12 , watchdog
13 , watchdog-gevent
16 buildPythonPackage rec {
17   pname = "dramatiq";
18   version = "1.15.0";
19   format = "setuptools";
21   disabled = pythonOlder "3.7";
23   src = fetchFromGitHub {
24     owner = "Bogdanp";
25     repo = "dramatiq";
26     rev = "refs/tags/v${version}";
27     hash = "sha256-uhradhLIyfHf1meAr7ChuGnvm62mX/lkQQ2Pe7hBWtY=";
28   };
30   propagatedBuildInputs = [
31     prometheus-client
32   ];
34   passthru.optional-dependencies = {
35     all = [
36       gevent
37       pika
38       pylibmc
39       redis
40       watchdog
41       watchdog-gevent
42     ];
43     gevent = [
44       gevent
45     ];
46     memcached = [
47       pylibmc
48     ];
49     rabbitmq = [
50       pika
51     ];
52     redis = [
53       redis
54     ];
55     watch = [
56       watchdog
57       watchdog-gevent
58     ];
59   };
61   nativeCheckInputs = [ pytestCheckHook pika redis pylibmc ];
63   postPatch = ''
64     sed -i ./setup.cfg \
65       -e 's:--cov dramatiq::' \
66       -e 's:--cov-report html::' \
67       -e 's:--benchmark-autosave::' \
68       -e 's:--benchmark-compare::' \
69   '';
71   disabledTests = [
72     # Requires a running redis
73     "test_after_process_boot_call_has_no_blocked_signals"
74     "test_cli_can_be_reloaded_on_sighup"
75     "test_cli_can_watch_for_source_code_changes"
76     "test_cli_fork_functions_have_no_blocked_signals"
77     "test_consumer_threads_have_no_blocked_signals"
78     "test_middleware_fork_functions_have_no_blocked_signals"
79     "test_redis_broker_can_connect_via_client"
80     "test_redis_broker_can_connect_via_url"
81     "test_redis_process_100k_messages_with_cli"
82     "test_redis_process_10k_fib_with_cli"
83     "test_redis_process_1k_latency_with_cli"
84     "test_worker_threads_have_no_blocked_signals"
85     # Requires a running rabbitmq
86     "test_rabbitmq_broker_can_be_passed_a_list_of_parameters_for_failover"
87     "test_rabbitmq_broker_can_be_passed_a_list_of_uri_for_failover"
88     "test_rabbitmq_broker_can_be_passed_a_semicolon_separated_list_of_uris"
89     "test_rabbitmq_broker_connections_are_lazy"
90     "test_rabbitmq_process_100k_messages_with_cli"
91     "test_rabbitmq_process_10k_fib_with_cli"
92     "test_rabbitmq_process_1k_latency_with_cli"
93   ] ++ lib.optionals stdenv.isDarwin [
94     # Takes too long for darwin ofborg
95     "test_retry_exceptions_can_specify_a_delay"
96   ];
98   pythonImportsCheck = [ "dramatiq" ];
100   meta = with lib; {
101     description = "Background Processing for Python 3";
102     homepage = "https://github.com/Bogdanp/dramatiq";
103     license = licenses.gpl3Only;
104     maintainers = with maintainers; [ traxys ];
105   };