kafka-python 2.0.5__tar.gz → 2.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kafka_python-2.0.5 → kafka_python-2.1.0}/CHANGES.md +105 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/PKG-INFO +2 -2
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/admin/client.py +247 -96
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/client_async.py +270 -114
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/cluster.py +31 -10
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/conn.py +401 -441
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/consumer/fetcher.py +449 -177
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/consumer/group.py +85 -129
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/consumer/subscription_state.py +11 -10
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/coordinator/assignors/sticky/sticky_assignor.py +0 -1
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/coordinator/base.py +172 -134
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/coordinator/consumer.py +153 -80
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/errors.py +1 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/metric_name.py +1 -1
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/metrics.py +3 -1
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/quota.py +1 -1
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/producer/kafka.py +84 -44
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/producer/record_accumulator.py +9 -7
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/producer/sender.py +13 -48
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/protocol/admin.py +115 -97
- kafka_python-2.1.0/kafka/protocol/api_versions.py +90 -0
- kafka_python-2.1.0/kafka/protocol/broker_api_versions.py +66 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/protocol/commit.py +110 -52
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/protocol/fetch.py +12 -10
- kafka_python-2.1.0/kafka/protocol/find_coordinator.py +64 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/protocol/group.py +64 -10
- kafka_python-2.0.5/kafka/protocol/offset.py → kafka_python-2.1.0/kafka/protocol/list_offsets.py +29 -29
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/protocol/metadata.py +69 -13
- kafka_python-2.1.0/kafka/protocol/offset_for_leader_epoch.py +140 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/protocol/parser.py +2 -2
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/protocol/produce.py +4 -2
- kafka_python-2.1.0/kafka/protocol/sasl_authenticate.py +42 -0
- kafka_python-2.1.0/kafka/protocol/sasl_handshake.py +39 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/record/default_records.py +49 -2
- kafka_python-2.1.0/kafka/sasl/__init__.py +34 -0
- kafka_python-2.1.0/kafka/sasl/abc.py +32 -0
- kafka_python-2.1.0/kafka/sasl/gssapi.py +87 -0
- kafka_python-2.1.0/kafka/sasl/msk.py +233 -0
- kafka_python-2.1.0/kafka/sasl/oauth.py +87 -0
- kafka_python-2.1.0/kafka/sasl/plain.py +41 -0
- kafka_python-2.1.0/kafka/sasl/scram.py +133 -0
- kafka_python-2.1.0/kafka/sasl/sspi.py +111 -0
- kafka_python-2.1.0/kafka/socks5_wrapper.py +248 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/structs.py +5 -4
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/util.py +22 -1
- kafka_python-2.1.0/kafka/version.py +1 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka_python.egg-info/PKG-INFO +2 -2
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka_python.egg-info/SOURCES.txt +16 -4
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka_python.egg-info/requires.txt +3 -1
- {kafka_python-2.0.5 → kafka_python-2.1.0}/pyproject.toml +1 -1
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_admin.py +4 -4
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_admin_integration.py +74 -3
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_client_async.py +24 -28
- kafka_python-2.1.0/test/test_cluster.py +134 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_conn.py +49 -8
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_consumer.py +1 -1
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_consumer_group.py +39 -36
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_consumer_integration.py +7 -3
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_coordinator.py +60 -20
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_fetcher.py +120 -71
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_object_conversion.py +2 -2
- kafka_python-2.1.0/test/test_producer.py +158 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_protocol.py +4 -6
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_sender.py +7 -9
- kafka_python-2.0.5/kafka/oauth/__init__.py +0 -3
- kafka_python-2.0.5/kafka/oauth/abstract.py +0 -42
- kafka_python-2.0.5/kafka/scram.py +0 -81
- kafka_python-2.0.5/kafka/version.py +0 -1
- kafka_python-2.0.5/test/test_cluster.py +0 -22
- kafka_python-2.0.5/test/test_producer.py +0 -137
- {kafka_python-2.0.5 → kafka_python-2.1.0}/AUTHORS.md +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/LICENSE +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/MANIFEST.in +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/README.rst +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/__init__.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/admin/__init__.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/admin/acl_resource.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/admin/config_resource.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/admin/new_partitions.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/admin/new_topic.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/codec.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/consumer/__init__.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/coordinator/__init__.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/coordinator/assignors/__init__.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/coordinator/assignors/abstract.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/coordinator/assignors/range.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/coordinator/assignors/roundrobin.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/coordinator/assignors/sticky/__init__.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/coordinator/assignors/sticky/partition_movements.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/coordinator/assignors/sticky/sorted_set.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/coordinator/heartbeat.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/coordinator/protocol.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/future.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/__init__.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/compound_stat.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/dict_reporter.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/kafka_metric.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/measurable.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/measurable_stat.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/metric_config.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/metrics_reporter.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/stat.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/stats/__init__.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/stats/avg.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/stats/count.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/stats/histogram.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/stats/max_stat.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/stats/min_stat.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/stats/percentile.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/stats/percentiles.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/stats/rate.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/stats/sampled_stat.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/stats/sensor.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/metrics/stats/total.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/partitioner/__init__.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/partitioner/default.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/producer/__init__.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/producer/buffer.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/producer/future.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/protocol/__init__.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/protocol/abstract.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/protocol/api.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/protocol/frame.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/protocol/message.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/protocol/pickle.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/protocol/struct.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/protocol/types.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/record/__init__.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/record/_crc32c.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/record/abc.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/record/legacy_records.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/record/memory_records.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/record/util.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/serializer/__init__.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/serializer/abstract.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/vendor/__init__.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/vendor/enum34.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/vendor/selectors34.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/vendor/six.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka/vendor/socketpair.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka_python.egg-info/dependency_links.txt +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/kafka_python.egg-info/top_level.txt +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/setup.cfg +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/setup.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_acl_comparisons.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_api_object_implementation.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_assignors.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_codec.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_metrics.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_package.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_partition_movements.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_partitioner.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_sasl_integration.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/test_subscription_state.py +0 -0
- {kafka_python-2.0.5 → kafka_python-2.1.0}/test/testutil.py +0 -0
|
@@ -1,3 +1,108 @@
|
|
|
1
|
+
# 2.1.0 (Mar 14, 2025)
|
|
2
|
+
|
|
3
|
+
Support Kafka Broker 2.1 API Baseline
|
|
4
|
+
* Add baseline leader_epoch support for ListOffsets v4 / FetchRequest v10 (#2511)
|
|
5
|
+
* Support OffsetFetch v5 / OffsetCommit v6 (2.1 baseline) (#2505)
|
|
6
|
+
* Support 2.1 baseline consumer group apis (#2503)
|
|
7
|
+
* Support FindCoordinatorRequest v2 in consumer and admin client (#2502)
|
|
8
|
+
* Support ListOffsets v3 in consumer (#2501)
|
|
9
|
+
* Support Fetch Request/Response v6 in consumer (#2500)
|
|
10
|
+
* Add support for Metadata Request/Response v7 (#2497)
|
|
11
|
+
* Implement Incremental Fetch Sessions / KIP-227 (#2508)
|
|
12
|
+
* Implement client-side connection throttling / KIP-219 (#2510)
|
|
13
|
+
* Add KafkaClient.api_version(operation) for best available from api_versions (#2495)
|
|
14
|
+
|
|
15
|
+
Consumer
|
|
16
|
+
* Timeout coordinator poll / ensure_coordinator_ready / ensure_active_group (#2526)
|
|
17
|
+
* Add optional timeout_ms kwarg to remaining consumer/coordinator methods (#2544)
|
|
18
|
+
* Check for coordinator.poll failure in KafkaConsumer
|
|
19
|
+
* Only mark coordinator dead if connection_delay > 0 (#2530)
|
|
20
|
+
* Delay group coordinator until after bootstrap (#2539)
|
|
21
|
+
* KAFKA-4160: Ensure rebalance listener not called with coordinator lock (#1438)
|
|
22
|
+
* Call default_offset_commit_callback after `_maybe_auto_commit_offsets_async` (#2546)
|
|
23
|
+
* Remove legacy/v1 consumer message iterator (#2543)
|
|
24
|
+
* Log warning when attempting to list offsets for unknown topic/partition (#2540)
|
|
25
|
+
* Add heartbeat thread id to debug logs on start
|
|
26
|
+
* Add inner_timeout_ms handler to fetcher; add fallback (#2529)
|
|
27
|
+
|
|
28
|
+
Producer
|
|
29
|
+
* KafkaProducer: Flush pending records before close() (#2537)
|
|
30
|
+
* Raise immediate error on producer.send after close (#2542)
|
|
31
|
+
* Limit producer close timeout to 1sec in __del__; use context managers to close in test_producer
|
|
32
|
+
* Use NullLogger in producer atexit cleanup
|
|
33
|
+
* Attempt to fix metadata race condition when partitioning in producer.send (#2523)
|
|
34
|
+
* Remove unused partial KIP-467 implementation (ProduceResponse batch error details) (#2524)
|
|
35
|
+
|
|
36
|
+
AdminClient
|
|
37
|
+
* Implement perform leader election (#2536)
|
|
38
|
+
* Support delete_records (#2535)
|
|
39
|
+
|
|
40
|
+
Networking
|
|
41
|
+
* Call ApiVersionsRequest during connection, prior to Sasl Handshake (#2493)
|
|
42
|
+
* Fake api_versions for old brokers, rename to ApiVersionsRequest, and handle error decoding (#2494)
|
|
43
|
+
* Debug log when skipping api_versions request with pre-configured api_version
|
|
44
|
+
* Only refresh metadata if connection fails all dns records (#2532)
|
|
45
|
+
* Support connections through SOCKS5 proxies (#2531)
|
|
46
|
+
* Fix OverflowError when connection_max_idle_ms is 0 or inf (#2538)
|
|
47
|
+
* socket.setblocking for eventlet/gevent compatibility
|
|
48
|
+
* Support custom per-request timeouts (#2498)
|
|
49
|
+
* Include request_timeout_ms in request debug log
|
|
50
|
+
* Support client.poll with future and timeout_ms
|
|
51
|
+
* mask unused afi var
|
|
52
|
+
* Debug log if check_version connection attempt fails
|
|
53
|
+
|
|
54
|
+
SASL Modules
|
|
55
|
+
* Refactor Sasl authentication with SaslMechanism abstract base class; support SaslAuthenticate (#2515)
|
|
56
|
+
* Add SSPI (Kerberos for Windows) authentication mechanism (#2521)
|
|
57
|
+
* Support AWS_MSK_IAM authentication (#2519)
|
|
58
|
+
* Cleanup sasl mechanism configuration checks; fix gssapi bugs; add sasl_kerberos_name config (#2520)
|
|
59
|
+
* Move kafka.oauth.AbstractTokenProvider -> kafka.sasl.oauth.AbstractTokenProvider (#2525)
|
|
60
|
+
|
|
61
|
+
Testing
|
|
62
|
+
* Bump default python to 3.13 in CI tests (#2541)
|
|
63
|
+
* Update pytest log_format: use logger instead of filename; add thread id
|
|
64
|
+
* Improve test_consumer_group::test_group logging before group stabilized (#2534)
|
|
65
|
+
* Limit test duration to 5mins w/ pytest-timeout
|
|
66
|
+
* Fix external kafka/zk fixtures for testing (#2533)
|
|
67
|
+
* Disable zookeeper admin server to avoid port conflicts
|
|
68
|
+
* Set default pytest log level to debug
|
|
69
|
+
* test_group: shorter timeout, more logging, more sleep
|
|
70
|
+
* Cache servers/dist in github actions workflow (#2527)
|
|
71
|
+
* Remove tox.ini; update testing docs
|
|
72
|
+
* Use thread-specific client_id in test_group
|
|
73
|
+
* Fix subprocess log warning; specify timeout_ms kwarg in consumer.poll tests
|
|
74
|
+
* Only set KAFKA_JVM_PERFORMANCE_OPTS in makefile if unset; add note re: 2.0-2.3 broker testing
|
|
75
|
+
* Add kafka command to test.fixtures; raise FileNotFoundError if version not installed
|
|
76
|
+
|
|
77
|
+
Documentation
|
|
78
|
+
* Improve ClusterMetadata docs re: node_id/broker_id str/int types
|
|
79
|
+
* Document api_version_auto_timeout_ms default; override in group tests
|
|
80
|
+
|
|
81
|
+
Fixes
|
|
82
|
+
* Signal close to metrics expire_loop
|
|
83
|
+
* Add kafka.util timeout_ms_fn
|
|
84
|
+
* fixup TopicAuthorizationFailedError construction
|
|
85
|
+
* Fix lint issues via ruff check (#2522)
|
|
86
|
+
* Make the "mock" dependency optional (only used in Python < 3.3). (#2518)
|
|
87
|
+
|
|
88
|
+
# 2.0.6 (Mar 4, 2025)
|
|
89
|
+
|
|
90
|
+
Networking
|
|
91
|
+
* Improve error handling in `client._maybe_connect` (#2504)
|
|
92
|
+
* Client connection / `maybe_refresh_metadata` changes (#2507)
|
|
93
|
+
* Improve too-large timeout handling in client poll
|
|
94
|
+
* Default `client.check_version` timeout to `api_version_auto_timeout_ms` (#2496)
|
|
95
|
+
|
|
96
|
+
Fixes
|
|
97
|
+
* Decode and skip transactional control records in consumer (#2499)
|
|
98
|
+
* try / except in consumer coordinator `__del__`
|
|
99
|
+
|
|
100
|
+
Testing
|
|
101
|
+
* test_conn fixup for py2
|
|
102
|
+
|
|
103
|
+
Project Maintenance
|
|
104
|
+
* Add 2.0 branch for backports
|
|
105
|
+
|
|
1
106
|
# 2.0.5 (Feb 25, 2025)
|
|
2
107
|
|
|
3
108
|
Networking
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: kafka-python
|
|
3
|
-
Version: 2.0
|
|
3
|
+
Version: 2.1.0
|
|
4
4
|
Summary: Pure Python client for Apache Kafka
|
|
5
5
|
Author-email: Dana Powers <dana.powers@gmail.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/dpkp/kafka-python
|
|
@@ -35,7 +35,7 @@ Provides-Extra: zstd
|
|
|
35
35
|
Requires-Dist: zstandard; extra == "zstd"
|
|
36
36
|
Provides-Extra: testing
|
|
37
37
|
Requires-Dist: pytest; extra == "testing"
|
|
38
|
-
Requires-Dist: mock; extra == "testing"
|
|
38
|
+
Requires-Dist: mock; python_version < "3.3" and extra == "testing"
|
|
39
39
|
Requires-Dist: pytest-mock; extra == "testing"
|
|
40
40
|
|
|
41
41
|
Kafka Python client
|