kafka-python 2.2.17__tar.gz → 2.2.18__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.
Files changed (168) hide show
  1. {kafka_python-2.2.17 → kafka_python-2.2.18}/CHANGES.md +5 -0
  2. {kafka_python-2.2.17 → kafka_python-2.2.18}/PKG-INFO +1 -1
  3. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/producer/record_accumulator.py +4 -0
  4. kafka_python-2.2.18/kafka/version.py +1 -0
  5. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka_python.egg-info/PKG-INFO +1 -1
  6. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_record_accumulator.py +16 -0
  7. kafka_python-2.2.17/kafka/version.py +0 -1
  8. {kafka_python-2.2.17 → kafka_python-2.2.18}/AUTHORS.md +0 -0
  9. {kafka_python-2.2.17 → kafka_python-2.2.18}/LICENSE +0 -0
  10. {kafka_python-2.2.17 → kafka_python-2.2.18}/MANIFEST.in +0 -0
  11. {kafka_python-2.2.17 → kafka_python-2.2.18}/README.rst +0 -0
  12. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/__init__.py +0 -0
  13. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/admin/__init__.py +0 -0
  14. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/admin/acl_resource.py +0 -0
  15. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/admin/client.py +0 -0
  16. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/admin/config_resource.py +0 -0
  17. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/admin/new_partitions.py +0 -0
  18. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/admin/new_topic.py +0 -0
  19. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/benchmarks/__init__.py +0 -0
  20. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/benchmarks/consumer_performance.py +0 -0
  21. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/benchmarks/load_example.py +0 -0
  22. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/benchmarks/producer_performance.py +0 -0
  23. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/benchmarks/record_batch_compose.py +0 -0
  24. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/benchmarks/record_batch_read.py +0 -0
  25. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/benchmarks/varint_speed.py +0 -0
  26. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/client_async.py +0 -0
  27. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/cluster.py +0 -0
  28. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/codec.py +0 -0
  29. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/conn.py +0 -0
  30. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/consumer/__init__.py +0 -0
  31. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/consumer/fetcher.py +0 -0
  32. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/consumer/group.py +0 -0
  33. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/consumer/subscription_state.py +0 -0
  34. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/coordinator/__init__.py +0 -0
  35. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/coordinator/assignors/__init__.py +0 -0
  36. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/coordinator/assignors/abstract.py +0 -0
  37. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/coordinator/assignors/range.py +0 -0
  38. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/coordinator/assignors/roundrobin.py +0 -0
  39. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/coordinator/assignors/sticky/__init__.py +0 -0
  40. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/coordinator/assignors/sticky/partition_movements.py +0 -0
  41. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/coordinator/assignors/sticky/sorted_set.py +0 -0
  42. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/coordinator/assignors/sticky/sticky_assignor.py +0 -0
  43. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/coordinator/base.py +0 -0
  44. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/coordinator/consumer.py +0 -0
  45. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/coordinator/heartbeat.py +0 -0
  46. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/coordinator/protocol.py +0 -0
  47. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/errors.py +0 -0
  48. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/future.py +0 -0
  49. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/__init__.py +0 -0
  50. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/compound_stat.py +0 -0
  51. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/dict_reporter.py +0 -0
  52. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/kafka_metric.py +0 -0
  53. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/measurable.py +0 -0
  54. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/measurable_stat.py +0 -0
  55. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/metric_config.py +0 -0
  56. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/metric_name.py +0 -0
  57. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/metrics.py +0 -0
  58. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/metrics_reporter.py +0 -0
  59. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/quota.py +0 -0
  60. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/stat.py +0 -0
  61. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/stats/__init__.py +0 -0
  62. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/stats/avg.py +0 -0
  63. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/stats/count.py +0 -0
  64. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/stats/histogram.py +0 -0
  65. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/stats/max_stat.py +0 -0
  66. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/stats/min_stat.py +0 -0
  67. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/stats/percentile.py +0 -0
  68. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/stats/percentiles.py +0 -0
  69. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/stats/rate.py +0 -0
  70. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/stats/sampled_stat.py +0 -0
  71. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/stats/sensor.py +0 -0
  72. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/metrics/stats/total.py +0 -0
  73. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/partitioner/__init__.py +0 -0
  74. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/partitioner/default.py +0 -0
  75. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/producer/__init__.py +0 -0
  76. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/producer/future.py +0 -0
  77. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/producer/kafka.py +0 -0
  78. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/producer/sender.py +0 -0
  79. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/producer/transaction_manager.py +0 -0
  80. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/__init__.py +0 -0
  81. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/abstract.py +0 -0
  82. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/add_offsets_to_txn.py +0 -0
  83. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/add_partitions_to_txn.py +0 -0
  84. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/admin.py +0 -0
  85. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/api.py +0 -0
  86. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/api_versions.py +0 -0
  87. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/broker_api_versions.py +0 -0
  88. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/commit.py +0 -0
  89. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/end_txn.py +0 -0
  90. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/fetch.py +0 -0
  91. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/find_coordinator.py +0 -0
  92. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/frame.py +0 -0
  93. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/group.py +0 -0
  94. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/init_producer_id.py +0 -0
  95. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/list_offsets.py +0 -0
  96. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/message.py +0 -0
  97. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/metadata.py +0 -0
  98. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/offset_for_leader_epoch.py +0 -0
  99. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/parser.py +0 -0
  100. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/pickle.py +0 -0
  101. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/produce.py +0 -0
  102. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/sasl_authenticate.py +0 -0
  103. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/sasl_handshake.py +0 -0
  104. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/struct.py +0 -0
  105. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/txn_offset_commit.py +0 -0
  106. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/protocol/types.py +0 -0
  107. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/record/__init__.py +0 -0
  108. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/record/_crc32c.py +0 -0
  109. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/record/abc.py +0 -0
  110. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/record/default_records.py +0 -0
  111. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/record/legacy_records.py +0 -0
  112. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/record/memory_records.py +0 -0
  113. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/record/util.py +0 -0
  114. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/sasl/__init__.py +0 -0
  115. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/sasl/abc.py +0 -0
  116. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/sasl/gssapi.py +0 -0
  117. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/sasl/msk.py +0 -0
  118. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/sasl/oauth.py +0 -0
  119. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/sasl/plain.py +0 -0
  120. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/sasl/scram.py +0 -0
  121. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/sasl/sspi.py +0 -0
  122. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/serializer/__init__.py +0 -0
  123. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/serializer/abstract.py +0 -0
  124. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/socks5_wrapper.py +0 -0
  125. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/structs.py +0 -0
  126. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/util.py +0 -0
  127. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/vendor/__init__.py +0 -0
  128. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/vendor/enum34.py +0 -0
  129. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/vendor/selectors34.py +0 -0
  130. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/vendor/six.py +0 -0
  131. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka/vendor/socketpair.py +0 -0
  132. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka_python.egg-info/SOURCES.txt +0 -0
  133. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka_python.egg-info/dependency_links.txt +0 -0
  134. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka_python.egg-info/requires.txt +0 -0
  135. {kafka_python-2.2.17 → kafka_python-2.2.18}/kafka_python.egg-info/top_level.txt +0 -0
  136. {kafka_python-2.2.17 → kafka_python-2.2.18}/pyproject.toml +0 -0
  137. {kafka_python-2.2.17 → kafka_python-2.2.18}/setup.cfg +0 -0
  138. {kafka_python-2.2.17 → kafka_python-2.2.18}/setup.py +0 -0
  139. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/integration/__init__.py +0 -0
  140. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/integration/conftest.py +0 -0
  141. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/integration/fixtures.py +0 -0
  142. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/integration/test_admin_integration.py +0 -0
  143. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/integration/test_consumer_group.py +0 -0
  144. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/integration/test_consumer_integration.py +0 -0
  145. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/integration/test_producer_integration.py +0 -0
  146. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/integration/test_sasl_integration.py +0 -0
  147. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_acl_comparisons.py +0 -0
  148. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_admin.py +0 -0
  149. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_api_object_implementation.py +0 -0
  150. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_assignors.py +0 -0
  151. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_client_async.py +0 -0
  152. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_cluster.py +0 -0
  153. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_codec.py +0 -0
  154. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_conn.py +0 -0
  155. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_consumer.py +0 -0
  156. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_coordinator.py +0 -0
  157. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_fetcher.py +0 -0
  158. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_metrics.py +0 -0
  159. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_object_conversion.py +0 -0
  160. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_package.py +0 -0
  161. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_partition_movements.py +0 -0
  162. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_partitioner.py +0 -0
  163. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_producer.py +0 -0
  164. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_protocol.py +0 -0
  165. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_sender.py +0 -0
  166. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_subscription_state.py +0 -0
  167. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/test_util.py +0 -0
  168. {kafka_python-2.2.17 → kafka_python-2.2.18}/test/testutil.py +0 -0
@@ -1,3 +1,8 @@
1
+ # 2.2.18 (Nov 20, 2025)
2
+
3
+ Fixes
4
+ * Add ProducerBatch.__lt__ for heapq (#2698)
5
+
1
6
  # 2.2.17 (Nov 20, 2025)
2
7
 
3
8
  Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kafka-python
3
- Version: 2.2.17
3
+ Version: 2.2.18
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
@@ -179,6 +179,10 @@ class ProducerBatch(object):
179
179
  return 'ProducerBatch(topic_partition=%s, record_count=%d)' % (
180
180
  self.topic_partition, self.records.next_offset())
181
181
 
182
+ # for heapq
183
+ def __lt__(self, other):
184
+ return self.created < other.created
185
+
182
186
 
183
187
  class RecordAccumulator(object):
184
188
  """
@@ -0,0 +1 @@
1
+ __version__ = '2.2.18'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kafka-python
3
- Version: 2.2.17
3
+ Version: 2.2.18
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
@@ -120,6 +120,22 @@ def test_batch_cannot_complete_twice():
120
120
  assert record_metadata.offset == 500
121
121
  assert record_metadata.timestamp == 10
122
122
 
123
+ def test_producer_batch_lt(tp):
124
+ records = MemoryRecordsBuilder(
125
+ magic=2, compression_type=0, batch_size=100000)
126
+ b1 = ProducerBatch(tp, records, now=1)
127
+ b2 = ProducerBatch(tp, records, now=2)
128
+
129
+ assert b1 < b2
130
+ assert not b1 < b1
131
+
132
+ import heapq
133
+ q = []
134
+ heapq.heappush(q, b2)
135
+ heapq.heappush(q, b1)
136
+ assert q[0] == b1
137
+ assert q[1] == b2
138
+
123
139
  def test_linger(tp, cluster):
124
140
  now = 0
125
141
  accum = RecordAccumulator(linger_ms=10)
@@ -1 +0,0 @@
1
- __version__ = '2.2.17'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes