1{
2 lib,
3 amqp,
4 azure-identity,
5 azure-servicebus,
6 azure-storage-queue,
7 backports-zoneinfo,
8 boto3,
9 buildPythonPackage,
10 case,
11 confluent-kafka,
12 fetchPypi,
13 hypothesis,
14 kazoo,
15 msgpack,
16 pycurl,
17 pymongo,
18 #, pyro4
19 pytest7CheckHook,
20 pythonOlder,
21 pyyaml,
22 redis,
23 sqlalchemy,
24 typing-extensions,
25 urllib3,
26 vine,
27}:
28
29buildPythonPackage rec {
30 pname = "kombu";
31 version = "5.3.7";
32 format = "setuptools";
33
34 disabled = pythonOlder "3.8";
35
36 src = fetchPypi {
37 inherit pname version;
38 hash = "sha256-ARxM2aNVwUod6NNdJXMUodJFbVK3FAOIVhrKw88al78=";
39 };
40
41 propagatedBuildInputs =
42 [
43 amqp
44 vine
45 ]
46 ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ]
47 ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ];
48
49 passthru.optional-dependencies = {
50 msgpack = [ msgpack ];
51 yaml = [ pyyaml ];
52 redis = [ redis ];
53 mongodb = [ pymongo ];
54 sqs = [
55 boto3
56 urllib3
57 pycurl
58 ];
59 zookeeper = [ kazoo ];
60 sqlalchemy = [ sqlalchemy ];
61 azurestoragequeues = [
62 azure-identity
63 azure-storage-queue
64 ];
65 azureservicebus = [ azure-servicebus ];
66 confluentkafka = [ confluent-kafka ];
67 # pyro4 doesn't suppport Python 3.11
68 #pyro = [
69 # pyro4
70 #];
71 };
72
73 nativeCheckInputs = [
74 case
75 hypothesis
76 pytest7CheckHook
77 ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
78
79 pythonImportsCheck = [ "kombu" ];
80
81 disabledTests = [
82 # Disable pyro4 test
83 "test_driver_version"
84 ];
85
86 meta = with lib; {
87 description = "Messaging library for Python";
88 homepage = "https://github.com/celery/kombu";
89 changelog = "https://github.com/celery/kombu/blob/v${version}/Changelog.rst";
90 license = licenses.bsd3;
91 maintainers = with maintainers; [ fab ];
92 };
93}