kafka-python 3.0.7__tar.gz → 3.0.8__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.7 → kafka_python-3.0.8}/CHANGES.md +5 -0
  2. {kafka_python-3.0.7 → kafka_python-3.0.8}/PKG-INFO +1 -1
  3. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/manager.py +4 -24
  4. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/transport.py +42 -5
  5. kafka_python-3.0.8/kafka/version.py +1 -0
  6. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka_python.egg-info/PKG-INFO +1 -1
  7. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/net/test_transport.py +88 -1
  8. kafka_python-3.0.7/kafka/version.py +0 -1
  9. {kafka_python-3.0.7 → kafka_python-3.0.8}/AUTHORS.md +0 -0
  10. {kafka_python-3.0.7 → kafka_python-3.0.8}/LICENSE +0 -0
  11. {kafka_python-3.0.7 → kafka_python-3.0.8}/MANIFEST.in +0 -0
  12. {kafka_python-3.0.7 → kafka_python-3.0.8}/README.rst +0 -0
  13. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/__init__.py +0 -0
  14. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/__main__.py +0 -0
  15. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/admin/__init__.py +0 -0
  16. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/admin/__main__.py +0 -0
  17. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/admin/_acls.py +0 -0
  18. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/admin/_cluster.py +0 -0
  19. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/admin/_configs.py +0 -0
  20. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/admin/_groups.py +0 -0
  21. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/admin/_partitions.py +0 -0
  22. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/admin/_topics.py +0 -0
  23. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/admin/_transactions.py +0 -0
  24. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/admin/_users.py +0 -0
  25. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/admin/client.py +0 -0
  26. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/benchmarks/__init__.py +0 -0
  27. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/benchmarks/consumer_performance.py +0 -0
  28. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/benchmarks/load_example.py +0 -0
  29. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/benchmarks/producer_encode_path.py +0 -0
  30. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/benchmarks/producer_performance.py +0 -0
  31. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/benchmarks/profile_protocol.py +0 -0
  32. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/benchmarks/protocol_old_vs_new.py +0 -0
  33. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/benchmarks/record_batch_compose.py +0 -0
  34. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/benchmarks/record_batch_read.py +0 -0
  35. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/benchmarks/varint_speed.py +0 -0
  36. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/__init__.py +0 -0
  37. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/__init__.py +0 -0
  38. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/acls/__init__.py +0 -0
  39. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/acls/common.py +0 -0
  40. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/acls/create.py +0 -0
  41. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/acls/delete.py +0 -0
  42. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/acls/describe.py +0 -0
  43. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/cluster/__init__.py +0 -0
  44. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/cluster/describe.py +0 -0
  45. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/cluster/describe_quorum.py +0 -0
  46. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/cluster/features.py +0 -0
  47. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/cluster/log_dirs.py +0 -0
  48. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/cluster/versions.py +0 -0
  49. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/configs/__init__.py +0 -0
  50. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/configs/alter.py +0 -0
  51. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/configs/common.py +0 -0
  52. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/configs/describe.py +0 -0
  53. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/configs/list.py +0 -0
  54. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/configs/reset.py +0 -0
  55. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/groups/__init__.py +0 -0
  56. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/groups/alter_offsets.py +0 -0
  57. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/groups/delete.py +0 -0
  58. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/groups/delete_offsets.py +0 -0
  59. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/groups/describe.py +0 -0
  60. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/groups/list.py +0 -0
  61. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/groups/list_offsets.py +0 -0
  62. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/groups/remove_members.py +0 -0
  63. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/groups/reset_offsets.py +0 -0
  64. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/partitions/__init__.py +0 -0
  65. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/partitions/alter_reassignments.py +0 -0
  66. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/partitions/create.py +0 -0
  67. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/partitions/delete_records.py +0 -0
  68. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/partitions/describe.py +0 -0
  69. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/partitions/elect_leaders.py +0 -0
  70. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/partitions/list_offsets.py +0 -0
  71. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/partitions/list_reassignments.py +0 -0
  72. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/topics/__init__.py +0 -0
  73. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/topics/create.py +0 -0
  74. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/topics/delete.py +0 -0
  75. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/topics/describe.py +0 -0
  76. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/topics/list.py +0 -0
  77. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/transactions/__init__.py +0 -0
  78. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/transactions/abort.py +0 -0
  79. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/transactions/describe.py +0 -0
  80. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/transactions/describe_producers.py +0 -0
  81. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/transactions/find_hanging.py +0 -0
  82. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/transactions/list.py +0 -0
  83. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/users/__init__.py +0 -0
  84. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/users/alter_user_scram_credentials.py +0 -0
  85. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/admin/users/describe_user_scram_credentials.py +0 -0
  86. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/common.py +0 -0
  87. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/consumer/__init__.py +0 -0
  88. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cli/producer/__init__.py +0 -0
  89. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/cluster.py +0 -0
  90. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/codec.py +0 -0
  91. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/consumer/__init__.py +0 -0
  92. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/consumer/__main__.py +0 -0
  93. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/consumer/fetcher.py +0 -0
  94. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/consumer/group.py +0 -0
  95. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/consumer/subscription_state.py +0 -0
  96. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/coordinator/__init__.py +0 -0
  97. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/coordinator/assignors/__init__.py +0 -0
  98. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/coordinator/assignors/abstract.py +0 -0
  99. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/coordinator/assignors/cooperative_sticky.py +0 -0
  100. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/coordinator/assignors/range.py +0 -0
  101. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/coordinator/assignors/roundrobin.py +0 -0
  102. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/coordinator/assignors/sticky/StickyAssignorUserData.json +0 -0
  103. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/coordinator/assignors/sticky/__init__.py +0 -0
  104. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/coordinator/assignors/sticky/partition_movements.py +0 -0
  105. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/coordinator/assignors/sticky/sorted_set.py +0 -0
  106. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/coordinator/assignors/sticky/sticky_assignor.py +0 -0
  107. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/coordinator/assignors/sticky/user_data.py +0 -0
  108. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/coordinator/base.py +0 -0
  109. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/coordinator/consumer.py +0 -0
  110. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/coordinator/heartbeat.py +0 -0
  111. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/coordinator/subscription.py +0 -0
  112. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/errors.py +0 -0
  113. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/future.py +0 -0
  114. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/__init__.py +0 -0
  115. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/compound_stat.py +0 -0
  116. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/dict_reporter.py +0 -0
  117. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/kafka_metric.py +0 -0
  118. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/measurable.py +0 -0
  119. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/measurable_stat.py +0 -0
  120. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/metric_config.py +0 -0
  121. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/metric_name.py +0 -0
  122. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/metrics.py +0 -0
  123. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/metrics_reporter.py +0 -0
  124. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/quota.py +0 -0
  125. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/stat.py +0 -0
  126. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/stats/__init__.py +0 -0
  127. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/stats/avg.py +0 -0
  128. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/stats/count.py +0 -0
  129. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/stats/histogram.py +0 -0
  130. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/stats/max_stat.py +0 -0
  131. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/stats/min_stat.py +0 -0
  132. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/stats/percentile.py +0 -0
  133. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/stats/percentiles.py +0 -0
  134. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/stats/rate.py +0 -0
  135. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/stats/sampled_stat.py +0 -0
  136. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/stats/sensor.py +0 -0
  137. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/metrics/stats/total.py +0 -0
  138. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/__init__.py +0 -0
  139. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/compat.py +0 -0
  140. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/connection.py +0 -0
  141. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/http_connect.py +0 -0
  142. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/inet.py +0 -0
  143. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/metrics.py +0 -0
  144. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/sasl/__init__.py +0 -0
  145. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/sasl/abc.py +0 -0
  146. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/sasl/gssapi.py +0 -0
  147. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/sasl/msk.py +0 -0
  148. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/sasl/oauth.py +0 -0
  149. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/sasl/plain.py +0 -0
  150. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/sasl/scram.py +0 -0
  151. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/sasl/sspi.py +0 -0
  152. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/selector.py +0 -0
  153. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/socks5.py +0 -0
  154. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/net/wakeup_notifier.py +0 -0
  155. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/partitioner/__init__.py +0 -0
  156. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/partitioner/abc.py +0 -0
  157. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/partitioner/default.py +0 -0
  158. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/partitioner/sticky.py +0 -0
  159. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/producer/__init__.py +0 -0
  160. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/producer/__main__.py +0 -0
  161. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/producer/future.py +0 -0
  162. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/producer/kafka.py +0 -0
  163. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/producer/producer_batch.py +0 -0
  164. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/producer/record_accumulator.py +0 -0
  165. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/producer/sender.py +0 -0
  166. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/producer/transaction_manager.py +0 -0
  167. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/__init__.py +0 -0
  168. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/__init__.py +0 -0
  169. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/acl.py +0 -0
  170. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/acl.pyi +0 -0
  171. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/client_quotas.py +0 -0
  172. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/client_quotas.pyi +0 -0
  173. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/cluster.py +0 -0
  174. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/cluster.pyi +0 -0
  175. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/configs.py +0 -0
  176. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/configs.pyi +0 -0
  177. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/groups.py +0 -0
  178. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/groups.pyi +0 -0
  179. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/topics.py +0 -0
  180. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/topics.pyi +0 -0
  181. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/transactions.py +0 -0
  182. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/transactions.pyi +0 -0
  183. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/users.py +0 -0
  184. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/admin/users.pyi +0 -0
  185. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/api_data.py +0 -0
  186. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/api_header.py +0 -0
  187. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/api_key.py +0 -0
  188. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/api_message.py +0 -0
  189. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/broker_version_data.py +0 -0
  190. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/consumer/__init__.py +0 -0
  191. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/consumer/fetch.py +0 -0
  192. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/consumer/fetch.pyi +0 -0
  193. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/consumer/group.py +0 -0
  194. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/consumer/group.pyi +0 -0
  195. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/consumer/metadata.py +0 -0
  196. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/consumer/metadata.pyi +0 -0
  197. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/consumer/offsets.py +0 -0
  198. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/consumer/offsets.pyi +0 -0
  199. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/data_container.py +0 -0
  200. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/frame.py +0 -0
  201. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/generate_stubs.py +0 -0
  202. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/metadata/__init__.py +0 -0
  203. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/metadata/api_versions.py +0 -0
  204. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/metadata/api_versions.pyi +0 -0
  205. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/metadata/find_coordinator.py +0 -0
  206. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/metadata/find_coordinator.pyi +0 -0
  207. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/metadata/metadata.py +0 -0
  208. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/metadata/metadata.pyi +0 -0
  209. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/__init__.py +0 -0
  210. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/abstract.py +0 -0
  211. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/add_offsets_to_txn.py +0 -0
  212. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/add_partitions_to_txn.py +0 -0
  213. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/admin.py +0 -0
  214. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/api.py +0 -0
  215. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/api_versions.py +0 -0
  216. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/commit.py +0 -0
  217. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/consumer_protocol.py +0 -0
  218. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/end_txn.py +0 -0
  219. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/fetch.py +0 -0
  220. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/find_coordinator.py +0 -0
  221. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/group.py +0 -0
  222. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/init_producer_id.py +0 -0
  223. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/list_offsets.py +0 -0
  224. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/metadata.py +0 -0
  225. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/offset_for_leader_epoch.py +0 -0
  226. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/produce.py +0 -0
  227. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/sasl_authenticate.py +0 -0
  228. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/sasl_handshake.py +0 -0
  229. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/struct.py +0 -0
  230. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/txn_offset_commit.py +0 -0
  231. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/old/types.py +0 -0
  232. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/parser.py +0 -0
  233. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/producer/__init__.py +0 -0
  234. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/producer/produce.py +0 -0
  235. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/producer/produce.pyi +0 -0
  236. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/producer/transaction.py +0 -0
  237. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/producer/transaction.pyi +0 -0
  238. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/sasl.py +0 -0
  239. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/sasl.pyi +0 -0
  240. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/__init__.py +0 -0
  241. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/__init__.py +0 -0
  242. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/array.py +0 -0
  243. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/base.py +0 -0
  244. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/codecs/__init__.py +0 -0
  245. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/codecs/encode_buffer.py +0 -0
  246. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/codecs/tagged_fields.py +0 -0
  247. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/codecs/types.py +0 -0
  248. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/codegen.py +0 -0
  249. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/simple.py +0 -0
  250. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/struct.py +0 -0
  251. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/struct_array.py +0 -0
  252. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/load_json.py +0 -0
  253. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AddOffsetsToTxnRequest.json +0 -0
  254. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AddOffsetsToTxnResponse.json +0 -0
  255. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AddPartitionsToTxnRequest.json +0 -0
  256. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AddPartitionsToTxnResponse.json +0 -0
  257. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterClientQuotasRequest.json +0 -0
  258. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterClientQuotasResponse.json +0 -0
  259. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterConfigsRequest.json +0 -0
  260. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterConfigsResponse.json +0 -0
  261. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterPartitionReassignmentsRequest.json +0 -0
  262. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterPartitionReassignmentsResponse.json +0 -0
  263. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterReplicaLogDirsRequest.json +0 -0
  264. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterReplicaLogDirsResponse.json +0 -0
  265. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterUserScramCredentialsRequest.json +0 -0
  266. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterUserScramCredentialsResponse.json +0 -0
  267. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ApiVersionsRequest.json +0 -0
  268. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ApiVersionsResponse.json +0 -0
  269. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ConsumerProtocolAssignment.json +0 -0
  270. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ConsumerProtocolSubscription.json +0 -0
  271. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/CreateAclsRequest.json +0 -0
  272. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/CreateAclsResponse.json +0 -0
  273. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/CreatePartitionsRequest.json +0 -0
  274. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/CreatePartitionsResponse.json +0 -0
  275. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/CreateTopicsRequest.json +0 -0
  276. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/CreateTopicsResponse.json +0 -0
  277. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DeleteAclsRequest.json +0 -0
  278. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DeleteAclsResponse.json +0 -0
  279. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DeleteGroupsRequest.json +0 -0
  280. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DeleteGroupsResponse.json +0 -0
  281. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DeleteRecordsRequest.json +0 -0
  282. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DeleteRecordsResponse.json +0 -0
  283. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DeleteTopicsRequest.json +0 -0
  284. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DeleteTopicsResponse.json +0 -0
  285. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeAclsRequest.json +0 -0
  286. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeAclsResponse.json +0 -0
  287. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeClientQuotasRequest.json +0 -0
  288. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeClientQuotasResponse.json +0 -0
  289. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeClusterRequest.json +0 -0
  290. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeClusterResponse.json +0 -0
  291. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeConfigsRequest.json +0 -0
  292. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeConfigsResponse.json +0 -0
  293. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeGroupsRequest.json +0 -0
  294. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeGroupsResponse.json +0 -0
  295. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeLogDirsRequest.json +0 -0
  296. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeLogDirsResponse.json +0 -0
  297. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeProducersRequest.json +0 -0
  298. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeProducersResponse.json +0 -0
  299. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeQuorumRequest.json +0 -0
  300. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeQuorumResponse.json +0 -0
  301. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeTopicPartitionsRequest.json +0 -0
  302. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeTopicPartitionsResponse.json +0 -0
  303. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeTransactionsRequest.json +0 -0
  304. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeTransactionsResponse.json +0 -0
  305. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeUserScramCredentialsRequest.json +0 -0
  306. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeUserScramCredentialsResponse.json +0 -0
  307. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ElectLeadersRequest.json +0 -0
  308. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ElectLeadersResponse.json +0 -0
  309. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/EndTxnRequest.json +0 -0
  310. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/EndTxnResponse.json +0 -0
  311. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/FetchRequest.json +0 -0
  312. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/FetchResponse.json +0 -0
  313. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/FindCoordinatorRequest.json +0 -0
  314. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/FindCoordinatorResponse.json +0 -0
  315. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/HeartbeatRequest.json +0 -0
  316. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/HeartbeatResponse.json +0 -0
  317. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/IncrementalAlterConfigsRequest.json +0 -0
  318. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/IncrementalAlterConfigsResponse.json +0 -0
  319. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/InitProducerIdRequest.json +0 -0
  320. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/InitProducerIdResponse.json +0 -0
  321. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/JoinGroupRequest.json +0 -0
  322. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/JoinGroupResponse.json +0 -0
  323. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/LeaveGroupRequest.json +0 -0
  324. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/LeaveGroupResponse.json +0 -0
  325. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListConfigResourcesRequest.json +0 -0
  326. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListConfigResourcesResponse.json +0 -0
  327. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListGroupsRequest.json +0 -0
  328. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListGroupsResponse.json +0 -0
  329. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListOffsetsRequest.json +0 -0
  330. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListOffsetsResponse.json +0 -0
  331. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListPartitionReassignmentsRequest.json +0 -0
  332. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListPartitionReassignmentsResponse.json +0 -0
  333. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListTransactionsRequest.json +0 -0
  334. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListTransactionsResponse.json +0 -0
  335. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/MetadataRequest.json +0 -0
  336. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/MetadataResponse.json +0 -0
  337. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/OffsetCommitRequest.json +0 -0
  338. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/OffsetCommitResponse.json +0 -0
  339. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/OffsetDeleteRequest.json +0 -0
  340. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/OffsetDeleteResponse.json +0 -0
  341. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/OffsetFetchRequest.json +0 -0
  342. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/OffsetFetchResponse.json +0 -0
  343. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/OffsetForLeaderEpochRequest.json +0 -0
  344. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/OffsetForLeaderEpochResponse.json +0 -0
  345. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ProduceRequest.json +0 -0
  346. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ProduceResponse.json +0 -0
  347. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/RequestHeader.json +0 -0
  348. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ResponseHeader.json +0 -0
  349. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/SaslAuthenticateRequest.json +0 -0
  350. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/SaslAuthenticateResponse.json +0 -0
  351. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/SaslHandshakeRequest.json +0 -0
  352. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/SaslHandshakeResponse.json +0 -0
  353. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/SyncGroupRequest.json +0 -0
  354. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/SyncGroupResponse.json +0 -0
  355. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/TxnOffsetCommitRequest.json +0 -0
  356. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/TxnOffsetCommitResponse.json +0 -0
  357. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/UpdateFeaturesRequest.json +0 -0
  358. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/UpdateFeaturesResponse.json +0 -0
  359. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/WriteTxnMarkersRequest.json +0 -0
  360. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/WriteTxnMarkersResponse.json +0 -0
  361. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/__init__.py +0 -0
  362. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/record/__init__.py +0 -0
  363. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/record/_crc32c.py +0 -0
  364. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/record/abc.py +0 -0
  365. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/record/default_records.py +0 -0
  366. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/record/legacy_records.py +0 -0
  367. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/record/memory_records.py +0 -0
  368. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/record/util.py +0 -0
  369. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/serializer/__init__.py +0 -0
  370. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/serializer/abstract.py +0 -0
  371. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/serializer/default.py +0 -0
  372. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/serializer/json.py +0 -0
  373. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/serializer/wrapper.py +0 -0
  374. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/structs.py +0 -0
  375. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/util.py +0 -0
  376. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka/vendor/__init__.py +0 -0
  377. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka_python.egg-info/SOURCES.txt +0 -0
  378. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka_python.egg-info/dependency_links.txt +0 -0
  379. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka_python.egg-info/entry_points.txt +0 -0
  380. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka_python.egg-info/requires.txt +0 -0
  381. {kafka_python-3.0.7 → kafka_python-3.0.8}/kafka_python.egg-info/top_level.txt +0 -0
  382. {kafka_python-3.0.7 → kafka_python-3.0.8}/pyproject.toml +0 -0
  383. {kafka_python-3.0.7 → kafka_python-3.0.8}/setup.cfg +0 -0
  384. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/integration/__init__.py +0 -0
  385. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/integration/conftest.py +0 -0
  386. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/integration/fixtures.py +0 -0
  387. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/integration/test_admin_integration.py +0 -0
  388. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/integration/test_consumer_integration.py +0 -0
  389. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/integration/test_producer_integration.py +0 -0
  390. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/integration/test_sasl_integration.py +0 -0
  391. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/integration/test_ssl_integration.py +0 -0
  392. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/net/__init__.py +0 -0
  393. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/net/test_compat.py +0 -0
  394. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/net/test_connection.py +0 -0
  395. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/net/test_http_connect.py +0 -0
  396. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/net/test_inet.py +0 -0
  397. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/net/test_manager.py +0 -0
  398. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/net/test_sasl_reauthentication.py +0 -0
  399. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/net/test_selector.py +0 -0
  400. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/net/test_wakeup_notifier.py +0 -0
  401. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/test_cluster.py +0 -0
  402. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/test_codec.py +0 -0
  403. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/test_future.py +0 -0
  404. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/test_metrics.py +0 -0
  405. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/test_mock_broker.py +0 -0
  406. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/test_package.py +0 -0
  407. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/test_util.py +0 -0
  408. {kafka_python-3.0.7 → kafka_python-3.0.8}/test/testutil.py +0 -0
@@ -1,3 +1,8 @@
1
+ # 3.0.8 (Jul 9, 2026)
2
+
3
+ ### Fixes
4
+ * transport: Fix TLS SNI when `ssl_check_hostname=False` (#3114)
5
+
1
6
  # 3.0.7 (Jun 28, 2026)
2
7
 
3
8
  ### Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kafka-python
3
- Version: 3.0.7
3
+ Version: 3.0.8
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
@@ -3,7 +3,6 @@ import logging
3
3
  import inspect
4
4
  import random
5
5
  import socket
6
- import ssl
7
6
  import time
8
7
 
9
8
  from .inet import create_connection
@@ -205,35 +204,16 @@ class KafkaConnectionManager:
205
204
  def ssl_enabled(self):
206
205
  return self.config['security_protocol'] in ('SSL', 'SASL_SSL')
207
206
 
208
- def _build_ssl_context(self):
209
- if self.config['ssl_context'] is not None:
210
- return self.config['ssl_context']
211
- ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
212
- ctx.minimum_version = ssl.TLSVersion.TLSv1_2
213
- ctx.check_hostname = self.config['ssl_check_hostname']
214
- if self.config['ssl_cafile']:
215
- ctx.load_verify_locations(self.config['ssl_cafile'])
216
- else:
217
- ctx.load_default_certs()
218
- if self.config['ssl_certfile']:
219
- ctx.load_cert_chain(
220
- certfile=self.config['ssl_certfile'],
221
- keyfile=self.config['ssl_keyfile'],
222
- password=self.config['ssl_password'],
223
- )
224
- if self.config['ssl_crlfile']:
225
- ctx.load_verify_locations(crl=self.config['ssl_crlfile'])
226
- ctx.verify_flags |= ssl.VERIFY_CRL_CHECK_LEAF
227
- return ctx
228
-
229
207
  async def _build_transport(self, node, timeout_at=None):
230
208
  sock = await create_connection(self._net, node.host, node.port,
231
209
  self.config['socket_options'],
232
210
  proxy_url=self.config['proxy_url'],
233
211
  timeout_at=timeout_at)
234
212
  if self.ssl_enabled:
235
- transport = KafkaSSLTransport(self._net, sock, self._build_ssl_context(),
236
- host=node.host, ssl_check_hostname=self.config['ssl_check_hostname'])
213
+ ssl_configs = {key: value
214
+ for key, value in self.config.items()
215
+ if key.startswith('ssl_')}
216
+ transport = KafkaSSLTransport(self._net, sock, host=node.host, **ssl_configs)
237
217
  else:
238
218
  transport = KafkaTCPTransport(self._net, sock, host=node.host)
239
219
 
@@ -1,4 +1,5 @@
1
1
  from collections import deque
2
+ import copy
2
3
  import logging
3
4
  import selectors
4
5
  import socket
@@ -371,13 +372,49 @@ class KafkaTCPTransport:
371
372
 
372
373
 
373
374
  class KafkaSSLTransport(KafkaTCPTransport):
374
- def __init__(self, net, sock, ssl_context, host=None, ssl_check_hostname=False):
375
- self._ssl_context = ssl_context
376
- server_hostname = host if ssl_check_hostname else None
377
- sock = ssl_context.wrap_socket(
378
- sock, server_hostname=server_hostname, do_handshake_on_connect=False)
375
+ DEFAULT_CONFIG = {
376
+ 'ssl_context': None,
377
+ 'ssl_check_hostname': True,
378
+ 'ssl_cafile': None,
379
+ 'ssl_certfile': None,
380
+ 'ssl_keyfile': None,
381
+ 'ssl_password': None,
382
+ 'ssl_crlfile': None,
383
+ }
384
+ def __init__(self, net, sock, host=None, **configs):
385
+ self.ssl_config = copy.copy(self.DEFAULT_CONFIG)
386
+ for key in self.ssl_config:
387
+ if key in configs:
388
+ self.ssl_config[key] = configs[key]
389
+ self._ssl_context = self._build_ssl_context(self.ssl_config)
390
+ server_hostname = host.rstrip('.') if host is not None else None
391
+ sock = self._ssl_context.wrap_socket(
392
+ sock, server_hostname=server_hostname,
393
+ do_handshake_on_connect=False)
379
394
  super().__init__(net, sock, host=host)
380
395
 
396
+ @staticmethod
397
+ def _build_ssl_context(config):
398
+ if config['ssl_context'] is not None:
399
+ return config['ssl_context']
400
+ ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
401
+ ctx.minimum_version = ssl.TLSVersion.TLSv1_2
402
+ ctx.check_hostname = config['ssl_check_hostname']
403
+ if config['ssl_cafile']:
404
+ ctx.load_verify_locations(config['ssl_cafile'])
405
+ else:
406
+ ctx.load_default_certs()
407
+ if config['ssl_certfile']:
408
+ ctx.load_cert_chain(
409
+ certfile=config['ssl_certfile'],
410
+ keyfile=config['ssl_keyfile'],
411
+ password=config['ssl_password'],
412
+ )
413
+ if config['ssl_crlfile']:
414
+ ctx.load_verify_locations(crl=config['ssl_crlfile'])
415
+ ctx.verify_flags |= ssl.VERIFY_CRL_CHECK_LEAF
416
+ return ctx
417
+
381
418
  async def handshake(self):
382
419
  while True:
383
420
  try:
@@ -0,0 +1 @@
1
+ __version__ = '3.0.8'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kafka-python
3
- Version: 3.0.7
3
+ Version: 3.0.8
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
@@ -7,7 +7,7 @@ import pytest
7
7
  import kafka.errors as Errors
8
8
  from kafka.future import Future
9
9
  from kafka.net.selector import NetworkSelector, TaskState
10
- from kafka.net.transport import KafkaTCPTransport
10
+ from kafka.net.transport import KafkaSSLTransport, KafkaTCPTransport
11
11
 
12
12
 
13
13
  @pytest.fixture
@@ -367,6 +367,93 @@ class TestKafkaTCPTransport:
367
367
  assert 'closed' in s
368
368
 
369
369
 
370
+ class TestKafkaSSLTransport:
371
+ """Regression tests for https://github.com/dpkp/kafka-python/issues/3113:
372
+ TLS SNI (server_hostname) must be sent regardless of ssl_check_hostname so
373
+ that SNI-routed clusters (nginx/Istio/Strimzi ingress) remain reachable when
374
+ hostname verification is disabled.
375
+ """
376
+
377
+ def _make_ssl_sock(self):
378
+ # wrap_socket returns a wrapped socket; give it the peer/name accessors
379
+ # that KafkaTCPTransport.__init__ pokes at via str()/repr helpers.
380
+ wrapped = _make_mock_sock()
381
+ sock = _make_mock_sock()
382
+ ctx = MagicMock()
383
+ ctx.wrap_socket.return_value = wrapped
384
+ return sock, ctx, wrapped
385
+
386
+ def test_sni_sent_when_check_hostname_true(self, net):
387
+ sock, ctx, _ = self._make_ssl_sock()
388
+ KafkaSSLTransport(net, sock, host='broker.example.com',
389
+ ssl_context=ctx, ssl_check_hostname=True)
390
+ _, kwargs = ctx.wrap_socket.call_args
391
+ assert kwargs['server_hostname'] == 'broker.example.com'
392
+
393
+ def test_sni_sent_when_check_hostname_false(self, net):
394
+ # The bug: SNI used to be suppressed when verification was disabled.
395
+ sock, ctx, _ = self._make_ssl_sock()
396
+ KafkaSSLTransport(net, sock, host='broker.example.com',
397
+ ssl_context=ctx, ssl_check_hostname=False)
398
+ _, kwargs = ctx.wrap_socket.call_args
399
+ assert kwargs['server_hostname'] == 'broker.example.com'
400
+
401
+ def test_sni_strips_trailing_dot(self, net):
402
+ # A trailing dot is a valid FQDN but illegal in the SNI extension.
403
+ sock, ctx, _ = self._make_ssl_sock()
404
+ KafkaSSLTransport(net, sock, host='broker.example.com.',
405
+ ssl_context=ctx, ssl_check_hostname=False)
406
+ _, kwargs = ctx.wrap_socket.call_args
407
+ assert kwargs['server_hostname'] == 'broker.example.com'
408
+
409
+ def test_sni_none_when_host_missing(self, net):
410
+ sock, ctx, _ = self._make_ssl_sock()
411
+ KafkaSSLTransport(net, sock, host=None, ssl_context=ctx)
412
+ _, kwargs = ctx.wrap_socket.call_args
413
+ assert kwargs['server_hostname'] is None
414
+
415
+ def test_handshake_not_done_on_connect(self, net):
416
+ sock, ctx, _ = self._make_ssl_sock()
417
+ KafkaSSLTransport(net, sock, host='broker.example.com', ssl_context=ctx)
418
+ _, kwargs = ctx.wrap_socket.call_args
419
+ assert kwargs['do_handshake_on_connect'] is False
420
+
421
+ def test_provided_ssl_context_is_used(self, net):
422
+ sock, ctx, wrapped = self._make_ssl_sock()
423
+ t = KafkaSSLTransport(net, sock, host='broker.example.com',
424
+ ssl_context=ctx)
425
+ assert t._ssl_context is ctx
426
+ assert t._sock is wrapped
427
+
428
+ def test_config_defaults_and_overrides(self, net):
429
+ sock, ctx, _ = self._make_ssl_sock()
430
+ t = KafkaSSLTransport(net, sock, host='h', ssl_context=ctx,
431
+ ssl_check_hostname=False)
432
+ # Explicitly-passed ssl_* keys land in ssl_config...
433
+ assert t.ssl_config['ssl_check_hostname'] is False
434
+ assert t.ssl_config['ssl_context'] is ctx
435
+ # ...unspecified keys keep their defaults.
436
+ assert t.ssl_config['ssl_cafile'] is None
437
+ assert t.ssl_config['ssl_check_hostname'] is not None
438
+
439
+
440
+ class TestBuildSSLContext:
441
+ def test_returns_provided_context(self):
442
+ ctx = MagicMock()
443
+ config = dict(KafkaSSLTransport.DEFAULT_CONFIG, ssl_context=ctx)
444
+ assert KafkaSSLTransport._build_ssl_context(config) is ctx
445
+
446
+ def test_check_hostname_propagates_to_context(self):
447
+ config = dict(KafkaSSLTransport.DEFAULT_CONFIG, ssl_check_hostname=False)
448
+ ctx = KafkaSSLTransport._build_ssl_context(config)
449
+ assert ctx.check_hostname is False
450
+
451
+ def test_check_hostname_true_requires_verification(self):
452
+ config = dict(KafkaSSLTransport.DEFAULT_CONFIG, ssl_check_hostname=True)
453
+ ctx = KafkaSSLTransport._build_ssl_context(config)
454
+ assert ctx.check_hostname is True
455
+
456
+
370
457
  class TestTransportWaiterCleanup:
371
458
  """Regression: a locally-initiated close()/abort() must reclaim the socket
372
459
  read/write coroutine tasks parked in the event loop.
@@ -1 +0,0 @@
1
- __version__ = '3.0.7'
File without changes
File without changes
File without changes
File without changes