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