kafka-python 3.0.5__tar.gz → 3.0.6__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 (408) hide show
  1. {kafka_python-3.0.5 → kafka_python-3.0.6}/CHANGES.md +9 -0
  2. {kafka_python-3.0.5 → kafka_python-3.0.6}/PKG-INFO +1 -1
  3. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/consumer/subscription_state.py +39 -5
  4. kafka_python-3.0.6/kafka/version.py +1 -0
  5. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka_python.egg-info/PKG-INFO +1 -1
  6. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/integration/fixtures.py +20 -12
  7. kafka_python-3.0.5/kafka/version.py +0 -1
  8. {kafka_python-3.0.5 → kafka_python-3.0.6}/AUTHORS.md +0 -0
  9. {kafka_python-3.0.5 → kafka_python-3.0.6}/LICENSE +0 -0
  10. {kafka_python-3.0.5 → kafka_python-3.0.6}/MANIFEST.in +0 -0
  11. {kafka_python-3.0.5 → kafka_python-3.0.6}/README.rst +0 -0
  12. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/__init__.py +0 -0
  13. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/__main__.py +0 -0
  14. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/admin/__init__.py +0 -0
  15. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/admin/__main__.py +0 -0
  16. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/admin/_acls.py +0 -0
  17. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/admin/_cluster.py +0 -0
  18. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/admin/_configs.py +0 -0
  19. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/admin/_groups.py +0 -0
  20. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/admin/_partitions.py +0 -0
  21. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/admin/_topics.py +0 -0
  22. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/admin/_transactions.py +0 -0
  23. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/admin/_users.py +0 -0
  24. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/admin/client.py +0 -0
  25. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/benchmarks/__init__.py +0 -0
  26. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/benchmarks/consumer_performance.py +0 -0
  27. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/benchmarks/load_example.py +0 -0
  28. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/benchmarks/producer_encode_path.py +0 -0
  29. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/benchmarks/producer_performance.py +0 -0
  30. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/benchmarks/profile_protocol.py +0 -0
  31. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/benchmarks/protocol_old_vs_new.py +0 -0
  32. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/benchmarks/record_batch_compose.py +0 -0
  33. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/benchmarks/record_batch_read.py +0 -0
  34. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/benchmarks/varint_speed.py +0 -0
  35. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/__init__.py +0 -0
  36. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/__init__.py +0 -0
  37. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/acls/__init__.py +0 -0
  38. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/acls/common.py +0 -0
  39. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/acls/create.py +0 -0
  40. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/acls/delete.py +0 -0
  41. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/acls/describe.py +0 -0
  42. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/cluster/__init__.py +0 -0
  43. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/cluster/describe.py +0 -0
  44. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/cluster/describe_quorum.py +0 -0
  45. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/cluster/features.py +0 -0
  46. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/cluster/log_dirs.py +0 -0
  47. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/cluster/versions.py +0 -0
  48. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/configs/__init__.py +0 -0
  49. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/configs/alter.py +0 -0
  50. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/configs/common.py +0 -0
  51. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/configs/describe.py +0 -0
  52. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/configs/list.py +0 -0
  53. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/configs/reset.py +0 -0
  54. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/groups/__init__.py +0 -0
  55. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/groups/alter_offsets.py +0 -0
  56. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/groups/delete.py +0 -0
  57. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/groups/delete_offsets.py +0 -0
  58. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/groups/describe.py +0 -0
  59. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/groups/list.py +0 -0
  60. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/groups/list_offsets.py +0 -0
  61. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/groups/remove_members.py +0 -0
  62. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/groups/reset_offsets.py +0 -0
  63. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/partitions/__init__.py +0 -0
  64. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/partitions/alter_reassignments.py +0 -0
  65. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/partitions/create.py +0 -0
  66. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/partitions/delete_records.py +0 -0
  67. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/partitions/describe.py +0 -0
  68. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/partitions/elect_leaders.py +0 -0
  69. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/partitions/list_offsets.py +0 -0
  70. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/partitions/list_reassignments.py +0 -0
  71. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/topics/__init__.py +0 -0
  72. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/topics/create.py +0 -0
  73. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/topics/delete.py +0 -0
  74. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/topics/describe.py +0 -0
  75. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/topics/list.py +0 -0
  76. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/transactions/__init__.py +0 -0
  77. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/transactions/abort.py +0 -0
  78. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/transactions/describe.py +0 -0
  79. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/transactions/describe_producers.py +0 -0
  80. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/transactions/find_hanging.py +0 -0
  81. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/transactions/list.py +0 -0
  82. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/users/__init__.py +0 -0
  83. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/users/alter_user_scram_credentials.py +0 -0
  84. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/admin/users/describe_user_scram_credentials.py +0 -0
  85. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/common.py +0 -0
  86. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/consumer/__init__.py +0 -0
  87. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cli/producer/__init__.py +0 -0
  88. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/cluster.py +0 -0
  89. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/codec.py +0 -0
  90. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/consumer/__init__.py +0 -0
  91. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/consumer/__main__.py +0 -0
  92. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/consumer/fetcher.py +0 -0
  93. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/consumer/group.py +0 -0
  94. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/coordinator/__init__.py +0 -0
  95. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/coordinator/assignors/__init__.py +0 -0
  96. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/coordinator/assignors/abstract.py +0 -0
  97. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/coordinator/assignors/cooperative_sticky.py +0 -0
  98. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/coordinator/assignors/range.py +0 -0
  99. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/coordinator/assignors/roundrobin.py +0 -0
  100. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/coordinator/assignors/sticky/StickyAssignorUserData.json +0 -0
  101. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/coordinator/assignors/sticky/__init__.py +0 -0
  102. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/coordinator/assignors/sticky/partition_movements.py +0 -0
  103. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/coordinator/assignors/sticky/sorted_set.py +0 -0
  104. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/coordinator/assignors/sticky/sticky_assignor.py +0 -0
  105. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/coordinator/assignors/sticky/user_data.py +0 -0
  106. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/coordinator/base.py +0 -0
  107. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/coordinator/consumer.py +0 -0
  108. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/coordinator/heartbeat.py +0 -0
  109. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/coordinator/subscription.py +0 -0
  110. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/errors.py +0 -0
  111. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/future.py +0 -0
  112. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/__init__.py +0 -0
  113. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/compound_stat.py +0 -0
  114. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/dict_reporter.py +0 -0
  115. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/kafka_metric.py +0 -0
  116. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/measurable.py +0 -0
  117. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/measurable_stat.py +0 -0
  118. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/metric_config.py +0 -0
  119. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/metric_name.py +0 -0
  120. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/metrics.py +0 -0
  121. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/metrics_reporter.py +0 -0
  122. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/quota.py +0 -0
  123. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/stat.py +0 -0
  124. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/stats/__init__.py +0 -0
  125. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/stats/avg.py +0 -0
  126. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/stats/count.py +0 -0
  127. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/stats/histogram.py +0 -0
  128. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/stats/max_stat.py +0 -0
  129. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/stats/min_stat.py +0 -0
  130. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/stats/percentile.py +0 -0
  131. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/stats/percentiles.py +0 -0
  132. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/stats/rate.py +0 -0
  133. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/stats/sampled_stat.py +0 -0
  134. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/stats/sensor.py +0 -0
  135. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/metrics/stats/total.py +0 -0
  136. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/__init__.py +0 -0
  137. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/compat.py +0 -0
  138. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/connection.py +0 -0
  139. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/http_connect.py +0 -0
  140. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/inet.py +0 -0
  141. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/manager.py +0 -0
  142. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/metrics.py +0 -0
  143. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/sasl/__init__.py +0 -0
  144. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/sasl/abc.py +0 -0
  145. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/sasl/gssapi.py +0 -0
  146. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/sasl/msk.py +0 -0
  147. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/sasl/oauth.py +0 -0
  148. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/sasl/plain.py +0 -0
  149. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/sasl/scram.py +0 -0
  150. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/sasl/sspi.py +0 -0
  151. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/selector.py +0 -0
  152. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/socks5.py +0 -0
  153. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/transport.py +0 -0
  154. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/net/wakeup_notifier.py +0 -0
  155. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/partitioner/__init__.py +0 -0
  156. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/partitioner/abc.py +0 -0
  157. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/partitioner/default.py +0 -0
  158. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/partitioner/sticky.py +0 -0
  159. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/producer/__init__.py +0 -0
  160. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/producer/__main__.py +0 -0
  161. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/producer/future.py +0 -0
  162. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/producer/kafka.py +0 -0
  163. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/producer/producer_batch.py +0 -0
  164. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/producer/record_accumulator.py +0 -0
  165. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/producer/sender.py +0 -0
  166. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/producer/transaction_manager.py +0 -0
  167. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/__init__.py +0 -0
  168. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/__init__.py +0 -0
  169. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/acl.py +0 -0
  170. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/acl.pyi +0 -0
  171. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/client_quotas.py +0 -0
  172. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/client_quotas.pyi +0 -0
  173. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/cluster.py +0 -0
  174. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/cluster.pyi +0 -0
  175. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/configs.py +0 -0
  176. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/configs.pyi +0 -0
  177. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/groups.py +0 -0
  178. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/groups.pyi +0 -0
  179. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/topics.py +0 -0
  180. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/topics.pyi +0 -0
  181. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/transactions.py +0 -0
  182. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/transactions.pyi +0 -0
  183. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/users.py +0 -0
  184. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/admin/users.pyi +0 -0
  185. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/api_data.py +0 -0
  186. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/api_header.py +0 -0
  187. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/api_key.py +0 -0
  188. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/api_message.py +0 -0
  189. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/broker_version_data.py +0 -0
  190. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/consumer/__init__.py +0 -0
  191. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/consumer/fetch.py +0 -0
  192. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/consumer/fetch.pyi +0 -0
  193. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/consumer/group.py +0 -0
  194. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/consumer/group.pyi +0 -0
  195. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/consumer/metadata.py +0 -0
  196. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/consumer/metadata.pyi +0 -0
  197. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/consumer/offsets.py +0 -0
  198. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/consumer/offsets.pyi +0 -0
  199. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/data_container.py +0 -0
  200. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/frame.py +0 -0
  201. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/generate_stubs.py +0 -0
  202. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/metadata/__init__.py +0 -0
  203. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/metadata/api_versions.py +0 -0
  204. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/metadata/api_versions.pyi +0 -0
  205. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/metadata/find_coordinator.py +0 -0
  206. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/metadata/find_coordinator.pyi +0 -0
  207. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/metadata/metadata.py +0 -0
  208. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/metadata/metadata.pyi +0 -0
  209. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/__init__.py +0 -0
  210. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/abstract.py +0 -0
  211. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/add_offsets_to_txn.py +0 -0
  212. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/add_partitions_to_txn.py +0 -0
  213. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/admin.py +0 -0
  214. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/api.py +0 -0
  215. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/api_versions.py +0 -0
  216. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/commit.py +0 -0
  217. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/consumer_protocol.py +0 -0
  218. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/end_txn.py +0 -0
  219. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/fetch.py +0 -0
  220. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/find_coordinator.py +0 -0
  221. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/group.py +0 -0
  222. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/init_producer_id.py +0 -0
  223. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/list_offsets.py +0 -0
  224. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/metadata.py +0 -0
  225. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/offset_for_leader_epoch.py +0 -0
  226. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/produce.py +0 -0
  227. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/sasl_authenticate.py +0 -0
  228. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/sasl_handshake.py +0 -0
  229. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/struct.py +0 -0
  230. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/txn_offset_commit.py +0 -0
  231. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/old/types.py +0 -0
  232. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/parser.py +0 -0
  233. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/producer/__init__.py +0 -0
  234. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/producer/produce.py +0 -0
  235. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/producer/produce.pyi +0 -0
  236. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/producer/transaction.py +0 -0
  237. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/producer/transaction.pyi +0 -0
  238. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/sasl.py +0 -0
  239. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/sasl.pyi +0 -0
  240. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/__init__.py +0 -0
  241. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/fields/__init__.py +0 -0
  242. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/fields/array.py +0 -0
  243. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/fields/base.py +0 -0
  244. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/fields/codecs/__init__.py +0 -0
  245. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/fields/codecs/encode_buffer.py +0 -0
  246. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/fields/codecs/tagged_fields.py +0 -0
  247. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/fields/codecs/types.py +0 -0
  248. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/fields/codegen.py +0 -0
  249. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/fields/simple.py +0 -0
  250. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/fields/struct.py +0 -0
  251. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/fields/struct_array.py +0 -0
  252. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/load_json.py +0 -0
  253. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/AddOffsetsToTxnRequest.json +0 -0
  254. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/AddOffsetsToTxnResponse.json +0 -0
  255. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/AddPartitionsToTxnRequest.json +0 -0
  256. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/AddPartitionsToTxnResponse.json +0 -0
  257. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/AlterClientQuotasRequest.json +0 -0
  258. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/AlterClientQuotasResponse.json +0 -0
  259. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/AlterConfigsRequest.json +0 -0
  260. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/AlterConfigsResponse.json +0 -0
  261. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/AlterPartitionReassignmentsRequest.json +0 -0
  262. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/AlterPartitionReassignmentsResponse.json +0 -0
  263. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/AlterReplicaLogDirsRequest.json +0 -0
  264. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/AlterReplicaLogDirsResponse.json +0 -0
  265. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/AlterUserScramCredentialsRequest.json +0 -0
  266. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/AlterUserScramCredentialsResponse.json +0 -0
  267. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ApiVersionsRequest.json +0 -0
  268. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ApiVersionsResponse.json +0 -0
  269. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ConsumerProtocolAssignment.json +0 -0
  270. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ConsumerProtocolSubscription.json +0 -0
  271. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/CreateAclsRequest.json +0 -0
  272. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/CreateAclsResponse.json +0 -0
  273. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/CreatePartitionsRequest.json +0 -0
  274. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/CreatePartitionsResponse.json +0 -0
  275. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/CreateTopicsRequest.json +0 -0
  276. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/CreateTopicsResponse.json +0 -0
  277. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DeleteAclsRequest.json +0 -0
  278. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DeleteAclsResponse.json +0 -0
  279. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DeleteGroupsRequest.json +0 -0
  280. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DeleteGroupsResponse.json +0 -0
  281. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DeleteRecordsRequest.json +0 -0
  282. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DeleteRecordsResponse.json +0 -0
  283. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DeleteTopicsRequest.json +0 -0
  284. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DeleteTopicsResponse.json +0 -0
  285. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeAclsRequest.json +0 -0
  286. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeAclsResponse.json +0 -0
  287. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeClientQuotasRequest.json +0 -0
  288. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeClientQuotasResponse.json +0 -0
  289. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeClusterRequest.json +0 -0
  290. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeClusterResponse.json +0 -0
  291. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeConfigsRequest.json +0 -0
  292. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeConfigsResponse.json +0 -0
  293. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeGroupsRequest.json +0 -0
  294. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeGroupsResponse.json +0 -0
  295. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeLogDirsRequest.json +0 -0
  296. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeLogDirsResponse.json +0 -0
  297. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeProducersRequest.json +0 -0
  298. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeProducersResponse.json +0 -0
  299. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeQuorumRequest.json +0 -0
  300. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeQuorumResponse.json +0 -0
  301. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeTopicPartitionsRequest.json +0 -0
  302. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeTopicPartitionsResponse.json +0 -0
  303. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeTransactionsRequest.json +0 -0
  304. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeTransactionsResponse.json +0 -0
  305. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeUserScramCredentialsRequest.json +0 -0
  306. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/DescribeUserScramCredentialsResponse.json +0 -0
  307. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ElectLeadersRequest.json +0 -0
  308. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ElectLeadersResponse.json +0 -0
  309. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/EndTxnRequest.json +0 -0
  310. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/EndTxnResponse.json +0 -0
  311. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/FetchRequest.json +0 -0
  312. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/FetchResponse.json +0 -0
  313. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/FindCoordinatorRequest.json +0 -0
  314. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/FindCoordinatorResponse.json +0 -0
  315. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/HeartbeatRequest.json +0 -0
  316. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/HeartbeatResponse.json +0 -0
  317. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/IncrementalAlterConfigsRequest.json +0 -0
  318. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/IncrementalAlterConfigsResponse.json +0 -0
  319. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/InitProducerIdRequest.json +0 -0
  320. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/InitProducerIdResponse.json +0 -0
  321. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/JoinGroupRequest.json +0 -0
  322. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/JoinGroupResponse.json +0 -0
  323. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/LeaveGroupRequest.json +0 -0
  324. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/LeaveGroupResponse.json +0 -0
  325. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ListConfigResourcesRequest.json +0 -0
  326. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ListConfigResourcesResponse.json +0 -0
  327. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ListGroupsRequest.json +0 -0
  328. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ListGroupsResponse.json +0 -0
  329. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ListOffsetsRequest.json +0 -0
  330. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ListOffsetsResponse.json +0 -0
  331. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ListPartitionReassignmentsRequest.json +0 -0
  332. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ListPartitionReassignmentsResponse.json +0 -0
  333. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ListTransactionsRequest.json +0 -0
  334. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ListTransactionsResponse.json +0 -0
  335. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/MetadataRequest.json +0 -0
  336. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/MetadataResponse.json +0 -0
  337. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/OffsetCommitRequest.json +0 -0
  338. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/OffsetCommitResponse.json +0 -0
  339. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/OffsetDeleteRequest.json +0 -0
  340. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/OffsetDeleteResponse.json +0 -0
  341. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/OffsetFetchRequest.json +0 -0
  342. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/OffsetFetchResponse.json +0 -0
  343. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/OffsetForLeaderEpochRequest.json +0 -0
  344. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/OffsetForLeaderEpochResponse.json +0 -0
  345. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ProduceRequest.json +0 -0
  346. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ProduceResponse.json +0 -0
  347. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/RequestHeader.json +0 -0
  348. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/ResponseHeader.json +0 -0
  349. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/SaslAuthenticateRequest.json +0 -0
  350. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/SaslAuthenticateResponse.json +0 -0
  351. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/SaslHandshakeRequest.json +0 -0
  352. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/SaslHandshakeResponse.json +0 -0
  353. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/SyncGroupRequest.json +0 -0
  354. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/SyncGroupResponse.json +0 -0
  355. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/TxnOffsetCommitRequest.json +0 -0
  356. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/TxnOffsetCommitResponse.json +0 -0
  357. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/UpdateFeaturesRequest.json +0 -0
  358. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/UpdateFeaturesResponse.json +0 -0
  359. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/WriteTxnMarkersRequest.json +0 -0
  360. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/WriteTxnMarkersResponse.json +0 -0
  361. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/protocol/schemas/resources/__init__.py +0 -0
  362. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/record/__init__.py +0 -0
  363. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/record/_crc32c.py +0 -0
  364. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/record/abc.py +0 -0
  365. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/record/default_records.py +0 -0
  366. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/record/legacy_records.py +0 -0
  367. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/record/memory_records.py +0 -0
  368. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/record/util.py +0 -0
  369. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/serializer/__init__.py +0 -0
  370. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/serializer/abstract.py +0 -0
  371. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/serializer/default.py +0 -0
  372. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/serializer/json.py +0 -0
  373. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/serializer/wrapper.py +0 -0
  374. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/structs.py +0 -0
  375. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/util.py +0 -0
  376. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka/vendor/__init__.py +0 -0
  377. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka_python.egg-info/SOURCES.txt +0 -0
  378. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka_python.egg-info/dependency_links.txt +0 -0
  379. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka_python.egg-info/entry_points.txt +0 -0
  380. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka_python.egg-info/requires.txt +0 -0
  381. {kafka_python-3.0.5 → kafka_python-3.0.6}/kafka_python.egg-info/top_level.txt +0 -0
  382. {kafka_python-3.0.5 → kafka_python-3.0.6}/pyproject.toml +0 -0
  383. {kafka_python-3.0.5 → kafka_python-3.0.6}/setup.cfg +0 -0
  384. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/integration/__init__.py +0 -0
  385. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/integration/conftest.py +0 -0
  386. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/integration/test_admin_integration.py +0 -0
  387. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/integration/test_consumer_integration.py +0 -0
  388. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/integration/test_producer_integration.py +0 -0
  389. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/integration/test_sasl_integration.py +0 -0
  390. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/integration/test_ssl_integration.py +0 -0
  391. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/net/__init__.py +0 -0
  392. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/net/test_compat.py +0 -0
  393. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/net/test_connection.py +0 -0
  394. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/net/test_http_connect.py +0 -0
  395. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/net/test_inet.py +0 -0
  396. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/net/test_manager.py +0 -0
  397. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/net/test_sasl_reauthentication.py +0 -0
  398. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/net/test_selector.py +0 -0
  399. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/net/test_transport.py +0 -0
  400. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/net/test_wakeup_notifier.py +0 -0
  401. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/test_cluster.py +0 -0
  402. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/test_codec.py +0 -0
  403. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/test_future.py +0 -0
  404. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/test_metrics.py +0 -0
  405. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/test_mock_broker.py +0 -0
  406. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/test_package.py +0 -0
  407. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/test_util.py +0 -0
  408. {kafka_python-3.0.5 → kafka_python-3.0.6}/test/testutil.py +0 -0
@@ -1,3 +1,12 @@
1
+ # 3.0.6 (Jun 25, 2026)
2
+
3
+ ### Fixes
4
+ * consumer: track current leader epoch in addition to record epoch (#3107)
5
+
6
+
7
+ ### CI
8
+ * Also `wait_for_topics` on <0.10 test fixtures (#3105)
9
+
1
10
  # 3.0.5 (Jun 24, 2026)
2
11
 
3
12
  ### Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kafka-python
3
- Version: 3.0.5
3
+ Version: 3.0.6
4
4
  Summary: Pure Python client for Apache Kafka
5
5
  Author-email: Dana Powers <dana.powers@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -564,6 +564,18 @@ class TopicPartitionState:
564
564
  # until OffsetForLeaderEpoch confirms the position is consistent with
565
565
  # the current leader's log; mutually exclusive with awaiting_reset.
566
566
  self._awaiting_validation = False
567
+ # Highest cluster leader epoch this position has already been reconciled
568
+ # against (a completed validation, or adoption of a position whose
569
+ # record epoch is unknown). This is deliberately distinct from the
570
+ # position's *record* epoch (``OffsetAndMetadata.leader_epoch``, which
571
+ # is sent as last_fetched_epoch for KIP-595 divergence detection): a
572
+ # leader election bumps the cluster epoch without changing the epoch of
573
+ # the record we're positioned on, and OffsetForLeaderEpoch reports the
574
+ # epoch of the requested (older) point, so the record epoch alone can't
575
+ # tell us whether we've validated against the current leader. Tracking
576
+ # it separately is what stops poll() from re-validating forever and
577
+ # stalling the consumer. See #3106.
578
+ self._current_leader_epoch = -1
567
579
  # KIP-392: preferred read replica chosen by the broker (rack-aware).
568
580
  # ``_preferred_read_replica_expiration`` is a monotonic deadline; after
569
581
  # it passes we fall back to the leader and re-learn. Cleared on
@@ -597,6 +609,7 @@ class TopicPartitionState:
597
609
  self._position = None
598
610
  self.next_allowed_retry_time = None
599
611
  self._awaiting_validation = False
612
+ self._current_leader_epoch = -1
600
613
  self.clear_preferred_read_replica()
601
614
 
602
615
  def is_reset_allowed(self):
@@ -625,6 +638,11 @@ class TopicPartitionState:
625
638
  self.drop_pending_record_batch = True
626
639
  self.next_allowed_retry_time = None
627
640
  self._awaiting_validation = False
641
+ # A freshly-seeked position has not been reconciled against any leader;
642
+ # force the next maybe_validate_position to validate it against the
643
+ # current leader (the prior position's validation says nothing about
644
+ # this offset).
645
+ self._current_leader_epoch = -1
628
646
  self.clear_preferred_read_replica()
629
647
 
630
648
  def pause(self):
@@ -686,7 +704,8 @@ class TopicPartitionState:
686
704
  return self._awaiting_validation
687
705
 
688
706
  def maybe_validate_position(self, current_leader_epoch):
689
- """Mark for validation if current leader has advanced beyond our position's epoch.
707
+ """Mark for validation if the current leader has advanced beyond the
708
+ leader epoch this position was last reconciled against.
690
709
 
691
710
  Returns True if the partition is now awaiting validation.
692
711
  """
@@ -696,11 +715,26 @@ class TopicPartitionState:
696
715
  return False
697
716
  if current_leader_epoch is None or current_leader_epoch < 0:
698
717
  return False
699
- # Positions without a known epoch (legacy data, post-seek to bare offset)
700
- # can't be validated; treat as already-fetchable.
701
- if self._position.leader_epoch < 0:
718
+ # Have we already reconciled this position against this leader epoch (or
719
+ # a newer one)? The floor is the max of:
720
+ # - the record epoch of the position itself: a record we actually
721
+ # fetched at this offset proves the position is valid through its
722
+ # epoch (so a position fetched under the current leader needs no
723
+ # validation), and
724
+ # - the leader epoch a completed validation reconciled us against,
725
+ # which can exceed the record epoch because OffsetForLeaderEpoch
726
+ # reports the epoch of the requested (older) point, not the current
727
+ # leader's. Without this second term the position is re-marked every
728
+ # poll and the partition never becomes fetchable again (#3106).
729
+ reconciled_epoch = max(self._current_leader_epoch, self._position.leader_epoch)
730
+ if current_leader_epoch <= reconciled_epoch:
702
731
  return False
703
- if self._position.leader_epoch >= current_leader_epoch:
732
+ # We are now tracking this leader epoch regardless of whether the
733
+ # position itself carries a record epoch we can validate against.
734
+ self._current_leader_epoch = current_leader_epoch
735
+ # Positions without a known record epoch (legacy data, post-seek to bare
736
+ # offset) can't be validated; treat as already-fetchable.
737
+ if self._position.leader_epoch < 0:
704
738
  return False
705
739
  self.clear_preferred_read_replica()
706
740
  self._awaiting_validation = True
@@ -0,0 +1 @@
1
+ __version__ = '3.0.6'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kafka-python
3
- Version: 3.0.5
3
+ Version: 3.0.6
4
4
  Summary: Pure Python client for Apache Kafka
5
5
  Author-email: Dana Powers <dana.powers@gmail.com>
6
6
  License-Expression: Apache-2.0
@@ -34,21 +34,29 @@ def create_topics(broker, topic_names, num_partitions=None, replication_factor=N
34
34
  for topic_name in topic_names:
35
35
  # TODO: verify kafka-topics.sh support for early 0.8 brokers
36
36
  broker._create_topic_via_cli(topic_name, num_partitions, replication_factor)
37
+ _wait_for_topics(broker, topic_names)
37
38
 
38
39
 
39
40
  def _create_topics_via_admin(broker, topic_names, num_partitions, replication_factor):
40
- from kafka.admin import NewTopic
41
- params = broker._enrich_client_params({}, client_id='topic_creator')
42
- admin = KafkaAdminClient(**params)
43
- try:
44
- topics = [NewTopic(name, num_partitions, replication_factor) for name in topic_names]
45
- admin.create_topics(topics, wait_for_metadata=True)
46
- except InvalidReplicationFactorError:
47
- time.sleep(0.5)
48
- topics = [NewTopic(name, num_partitions, replication_factor) for name in topic_names]
49
- admin.create_topics(topics, wait_for_metadata=True)
50
- finally:
51
- admin.close()
41
+ params = broker._enrich_client_params({'api_version': env_kafka_version(), 'client_id': 'topic_creator'})
42
+ with KafkaAdminClient(**params) as admin:
43
+ try:
44
+ topics = {name: {'num_partitions': num_partitions, 'replication_factor': replication_factor}
45
+ for name in topic_names}
46
+ admin.create_topics(topics, wait_for_metadata=True)
47
+ except InvalidReplicationFactorError:
48
+ # wait and try again
49
+ # in CI the brokers sometimes take a while to find themselves
50
+ time.sleep(0.5)
51
+ topics = {name: {'num_partitions': num_partitions, 'replication_factor': replication_factor}
52
+ for name in topic_names}
53
+ admin.create_topics(topics, wait_for_metadata=True)
54
+
55
+
56
+ def _wait_for_topics(broker, topics):
57
+ params = broker._enrich_client_params({'api_version': env_kafka_version(), 'client_id': 'topic_creator'})
58
+ with KafkaAdminClient(**params) as admin:
59
+ admin.wait_for_topics(topics)
52
60
 
53
61
 
54
62
  def client_params(broker, client_id='client', **overrides):
@@ -1 +0,0 @@
1
- __version__ = '3.0.5'
File without changes
File without changes
File without changes
File without changes