kafka-python 3.0.0__py3-none-any.whl

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 (373) hide show
  1. kafka/__init__.py +34 -0
  2. kafka/__main__.py +5 -0
  3. kafka/admin/__init__.py +29 -0
  4. kafka/admin/__main__.py +5 -0
  5. kafka/admin/_acls.py +355 -0
  6. kafka/admin/_cluster.py +359 -0
  7. kafka/admin/_configs.py +479 -0
  8. kafka/admin/_groups.py +754 -0
  9. kafka/admin/_partitions.py +595 -0
  10. kafka/admin/_topics.py +281 -0
  11. kafka/admin/_transactions.py +450 -0
  12. kafka/admin/_users.py +194 -0
  13. kafka/admin/client.py +373 -0
  14. kafka/benchmarks/__init__.py +0 -0
  15. kafka/benchmarks/consumer_performance.py +138 -0
  16. kafka/benchmarks/load_example.py +109 -0
  17. kafka/benchmarks/producer_encode_path.py +201 -0
  18. kafka/benchmarks/producer_performance.py +161 -0
  19. kafka/benchmarks/profile_protocol.py +138 -0
  20. kafka/benchmarks/protocol_old_vs_new.py +447 -0
  21. kafka/benchmarks/record_batch_compose.py +77 -0
  22. kafka/benchmarks/record_batch_read.py +82 -0
  23. kafka/benchmarks/varint_speed.py +426 -0
  24. kafka/cli/__init__.py +36 -0
  25. kafka/cli/admin/__init__.py +117 -0
  26. kafka/cli/admin/acls/__init__.py +9 -0
  27. kafka/cli/admin/acls/common.py +76 -0
  28. kafka/cli/admin/acls/create.py +19 -0
  29. kafka/cli/admin/acls/delete.py +23 -0
  30. kafka/cli/admin/acls/describe.py +16 -0
  31. kafka/cli/admin/cluster/__init__.py +14 -0
  32. kafka/cli/admin/cluster/describe.py +11 -0
  33. kafka/cli/admin/cluster/describe_quorum.py +11 -0
  34. kafka/cli/admin/cluster/features.py +52 -0
  35. kafka/cli/admin/cluster/log_dirs.py +43 -0
  36. kafka/cli/admin/cluster/versions.py +33 -0
  37. kafka/cli/admin/configs/__init__.py +10 -0
  38. kafka/cli/admin/configs/alter.py +43 -0
  39. kafka/cli/admin/configs/common.py +17 -0
  40. kafka/cli/admin/configs/describe.py +30 -0
  41. kafka/cli/admin/configs/list.py +16 -0
  42. kafka/cli/admin/configs/reset.py +20 -0
  43. kafka/cli/admin/groups/__init__.py +16 -0
  44. kafka/cli/admin/groups/alter_offsets.py +30 -0
  45. kafka/cli/admin/groups/delete.py +11 -0
  46. kafka/cli/admin/groups/delete_offsets.py +29 -0
  47. kafka/cli/admin/groups/describe.py +11 -0
  48. kafka/cli/admin/groups/list.py +28 -0
  49. kafka/cli/admin/groups/list_offsets.py +29 -0
  50. kafka/cli/admin/groups/remove_members.py +40 -0
  51. kafka/cli/admin/groups/reset_offsets.py +139 -0
  52. kafka/cli/admin/partitions/__init__.py +21 -0
  53. kafka/cli/admin/partitions/alter_reassignments.py +37 -0
  54. kafka/cli/admin/partitions/create.py +27 -0
  55. kafka/cli/admin/partitions/delete_records.py +31 -0
  56. kafka/cli/admin/partitions/describe.py +36 -0
  57. kafka/cli/admin/partitions/elect_leaders.py +53 -0
  58. kafka/cli/admin/partitions/list_offsets.py +88 -0
  59. kafka/cli/admin/partitions/list_reassignments.py +35 -0
  60. kafka/cli/admin/topics/__init__.py +10 -0
  61. kafka/cli/admin/topics/create.py +13 -0
  62. kafka/cli/admin/topics/delete.py +19 -0
  63. kafka/cli/admin/topics/describe.py +18 -0
  64. kafka/cli/admin/topics/list.py +11 -0
  65. kafka/cli/admin/transactions/__init__.py +17 -0
  66. kafka/cli/admin/transactions/abort.py +38 -0
  67. kafka/cli/admin/transactions/describe.py +24 -0
  68. kafka/cli/admin/transactions/describe_producers.py +29 -0
  69. kafka/cli/admin/transactions/find_hanging.py +26 -0
  70. kafka/cli/admin/transactions/list.py +37 -0
  71. kafka/cli/admin/users/__init__.py +8 -0
  72. kafka/cli/admin/users/alter_user_scram_credentials.py +34 -0
  73. kafka/cli/admin/users/describe_user_scram_credentials.py +15 -0
  74. kafka/cli/common.py +95 -0
  75. kafka/cli/consumer/__init__.py +63 -0
  76. kafka/cli/producer/__init__.py +57 -0
  77. kafka/cluster.py +824 -0
  78. kafka/codec.py +325 -0
  79. kafka/consumer/__init__.py +5 -0
  80. kafka/consumer/__main__.py +5 -0
  81. kafka/consumer/fetcher.py +2012 -0
  82. kafka/consumer/group.py +1347 -0
  83. kafka/consumer/subscription_state.py +897 -0
  84. kafka/coordinator/__init__.py +0 -0
  85. kafka/coordinator/assignors/__init__.py +0 -0
  86. kafka/coordinator/assignors/abstract.py +90 -0
  87. kafka/coordinator/assignors/cooperative_sticky.py +167 -0
  88. kafka/coordinator/assignors/range.py +81 -0
  89. kafka/coordinator/assignors/roundrobin.py +101 -0
  90. kafka/coordinator/assignors/sticky/StickyAssignorUserData.json +37 -0
  91. kafka/coordinator/assignors/sticky/__init__.py +0 -0
  92. kafka/coordinator/assignors/sticky/partition_movements.py +149 -0
  93. kafka/coordinator/assignors/sticky/sorted_set.py +63 -0
  94. kafka/coordinator/assignors/sticky/sticky_assignor.py +665 -0
  95. kafka/coordinator/assignors/sticky/user_data.py +8 -0
  96. kafka/coordinator/base.py +1215 -0
  97. kafka/coordinator/consumer.py +1224 -0
  98. kafka/coordinator/heartbeat.py +82 -0
  99. kafka/coordinator/subscription.py +34 -0
  100. kafka/errors.py +1004 -0
  101. kafka/future.py +166 -0
  102. kafka/metrics/__init__.py +13 -0
  103. kafka/metrics/compound_stat.py +33 -0
  104. kafka/metrics/dict_reporter.py +81 -0
  105. kafka/metrics/kafka_metric.py +36 -0
  106. kafka/metrics/measurable.py +27 -0
  107. kafka/metrics/measurable_stat.py +13 -0
  108. kafka/metrics/metric_config.py +33 -0
  109. kafka/metrics/metric_name.py +105 -0
  110. kafka/metrics/metrics.py +261 -0
  111. kafka/metrics/metrics_reporter.py +53 -0
  112. kafka/metrics/quota.py +41 -0
  113. kafka/metrics/stat.py +19 -0
  114. kafka/metrics/stats/__init__.py +15 -0
  115. kafka/metrics/stats/avg.py +24 -0
  116. kafka/metrics/stats/count.py +17 -0
  117. kafka/metrics/stats/histogram.py +99 -0
  118. kafka/metrics/stats/max_stat.py +17 -0
  119. kafka/metrics/stats/min_stat.py +19 -0
  120. kafka/metrics/stats/percentile.py +14 -0
  121. kafka/metrics/stats/percentiles.py +75 -0
  122. kafka/metrics/stats/rate.py +118 -0
  123. kafka/metrics/stats/sampled_stat.py +99 -0
  124. kafka/metrics/stats/sensor.py +136 -0
  125. kafka/metrics/stats/total.py +15 -0
  126. kafka/net/__init__.py +19 -0
  127. kafka/net/compat.py +165 -0
  128. kafka/net/connection.py +593 -0
  129. kafka/net/http_connect.py +144 -0
  130. kafka/net/inet.py +122 -0
  131. kafka/net/manager.py +451 -0
  132. kafka/net/metrics.py +149 -0
  133. kafka/net/sasl/__init__.py +32 -0
  134. kafka/net/sasl/abc.py +28 -0
  135. kafka/net/sasl/gssapi.py +95 -0
  136. kafka/net/sasl/msk.py +245 -0
  137. kafka/net/sasl/oauth.py +98 -0
  138. kafka/net/sasl/plain.py +42 -0
  139. kafka/net/sasl/scram.py +135 -0
  140. kafka/net/sasl/sspi.py +111 -0
  141. kafka/net/selector.py +644 -0
  142. kafka/net/socks5.py +262 -0
  143. kafka/net/transport.py +415 -0
  144. kafka/net/wakeup_notifier.py +72 -0
  145. kafka/partitioner/__init__.py +8 -0
  146. kafka/partitioner/abc.py +8 -0
  147. kafka/partitioner/default.py +89 -0
  148. kafka/partitioner/sticky.py +109 -0
  149. kafka/producer/__init__.py +5 -0
  150. kafka/producer/__main__.py +5 -0
  151. kafka/producer/future.py +101 -0
  152. kafka/producer/kafka.py +1123 -0
  153. kafka/producer/producer_batch.py +192 -0
  154. kafka/producer/record_accumulator.py +647 -0
  155. kafka/producer/sender.py +884 -0
  156. kafka/producer/transaction_manager.py +1326 -0
  157. kafka/protocol/__init__.py +0 -0
  158. kafka/protocol/admin/__init__.py +29 -0
  159. kafka/protocol/admin/acl.py +83 -0
  160. kafka/protocol/admin/acl.pyi +375 -0
  161. kafka/protocol/admin/client_quotas.py +14 -0
  162. kafka/protocol/admin/client_quotas.pyi +265 -0
  163. kafka/protocol/admin/cluster.py +31 -0
  164. kafka/protocol/admin/cluster.pyi +620 -0
  165. kafka/protocol/admin/configs.py +22 -0
  166. kafka/protocol/admin/configs.pyi +437 -0
  167. kafka/protocol/admin/groups.py +24 -0
  168. kafka/protocol/admin/groups.pyi +261 -0
  169. kafka/protocol/admin/topics.py +53 -0
  170. kafka/protocol/admin/topics.pyi +982 -0
  171. kafka/protocol/admin/transactions.py +18 -0
  172. kafka/protocol/admin/transactions.pyi +311 -0
  173. kafka/protocol/admin/users.py +14 -0
  174. kafka/protocol/admin/users.pyi +223 -0
  175. kafka/protocol/api_data.py +125 -0
  176. kafka/protocol/api_header.py +55 -0
  177. kafka/protocol/api_key.py +97 -0
  178. kafka/protocol/api_message.py +277 -0
  179. kafka/protocol/broker_version_data.py +246 -0
  180. kafka/protocol/consumer/__init__.py +13 -0
  181. kafka/protocol/consumer/fetch.py +16 -0
  182. kafka/protocol/consumer/fetch.pyi +298 -0
  183. kafka/protocol/consumer/group.py +38 -0
  184. kafka/protocol/consumer/group.pyi +824 -0
  185. kafka/protocol/consumer/metadata.py +30 -0
  186. kafka/protocol/consumer/metadata.pyi +89 -0
  187. kafka/protocol/consumer/offsets.py +75 -0
  188. kafka/protocol/consumer/offsets.pyi +288 -0
  189. kafka/protocol/data_container.py +166 -0
  190. kafka/protocol/frame.py +30 -0
  191. kafka/protocol/generate_stubs.py +468 -0
  192. kafka/protocol/metadata/__init__.py +10 -0
  193. kafka/protocol/metadata/api_versions.py +41 -0
  194. kafka/protocol/metadata/api_versions.pyi +128 -0
  195. kafka/protocol/metadata/find_coordinator.py +19 -0
  196. kafka/protocol/metadata/find_coordinator.pyi +105 -0
  197. kafka/protocol/metadata/metadata.py +34 -0
  198. kafka/protocol/metadata/metadata.pyi +160 -0
  199. kafka/protocol/old/__init__.py +0 -0
  200. kafka/protocol/old/abstract.py +17 -0
  201. kafka/protocol/old/add_offsets_to_txn.py +54 -0
  202. kafka/protocol/old/add_partitions_to_txn.py +71 -0
  203. kafka/protocol/old/admin.py +1086 -0
  204. kafka/protocol/old/api.py +205 -0
  205. kafka/protocol/old/api_versions.py +133 -0
  206. kafka/protocol/old/commit.py +355 -0
  207. kafka/protocol/old/consumer_protocol.py +36 -0
  208. kafka/protocol/old/end_txn.py +53 -0
  209. kafka/protocol/old/fetch.py +408 -0
  210. kafka/protocol/old/find_coordinator.py +72 -0
  211. kafka/protocol/old/group.py +451 -0
  212. kafka/protocol/old/init_producer_id.py +42 -0
  213. kafka/protocol/old/list_offsets.py +186 -0
  214. kafka/protocol/old/metadata.py +290 -0
  215. kafka/protocol/old/offset_for_leader_epoch.py +133 -0
  216. kafka/protocol/old/produce.py +247 -0
  217. kafka/protocol/old/sasl_authenticate.py +38 -0
  218. kafka/protocol/old/sasl_handshake.py +39 -0
  219. kafka/protocol/old/struct.py +87 -0
  220. kafka/protocol/old/txn_offset_commit.py +73 -0
  221. kafka/protocol/old/types.py +440 -0
  222. kafka/protocol/parser.py +191 -0
  223. kafka/protocol/producer/__init__.py +7 -0
  224. kafka/protocol/producer/produce.py +17 -0
  225. kafka/protocol/producer/produce.pyi +197 -0
  226. kafka/protocol/producer/transaction.py +30 -0
  227. kafka/protocol/producer/transaction.pyi +663 -0
  228. kafka/protocol/sasl.py +52 -0
  229. kafka/protocol/sasl.pyi +126 -0
  230. kafka/protocol/schemas/__init__.py +7 -0
  231. kafka/protocol/schemas/fields/__init__.py +7 -0
  232. kafka/protocol/schemas/fields/array.py +127 -0
  233. kafka/protocol/schemas/fields/base.py +156 -0
  234. kafka/protocol/schemas/fields/codecs/__init__.py +12 -0
  235. kafka/protocol/schemas/fields/codecs/encode_buffer.py +82 -0
  236. kafka/protocol/schemas/fields/codecs/tagged_fields.py +109 -0
  237. kafka/protocol/schemas/fields/codecs/types.py +505 -0
  238. kafka/protocol/schemas/fields/codegen.py +40 -0
  239. kafka/protocol/schemas/fields/simple.py +127 -0
  240. kafka/protocol/schemas/fields/struct.py +357 -0
  241. kafka/protocol/schemas/fields/struct_array.py +142 -0
  242. kafka/protocol/schemas/load_json.py +42 -0
  243. kafka/protocol/schemas/resources/AddOffsetsToTxnRequest.json +40 -0
  244. kafka/protocol/schemas/resources/AddOffsetsToTxnResponse.json +35 -0
  245. kafka/protocol/schemas/resources/AddPartitionsToTxnRequest.json +65 -0
  246. kafka/protocol/schemas/resources/AddPartitionsToTxnResponse.json +60 -0
  247. kafka/protocol/schemas/resources/AlterClientQuotasRequest.json +47 -0
  248. kafka/protocol/schemas/resources/AlterClientQuotasResponse.json +41 -0
  249. kafka/protocol/schemas/resources/AlterConfigsRequest.json +43 -0
  250. kafka/protocol/schemas/resources/AlterConfigsResponse.json +39 -0
  251. kafka/protocol/schemas/resources/AlterPartitionReassignmentsRequest.json +42 -0
  252. kafka/protocol/schemas/resources/AlterPartitionReassignmentsResponse.json +47 -0
  253. kafka/protocol/schemas/resources/AlterReplicaLogDirsRequest.json +41 -0
  254. kafka/protocol/schemas/resources/AlterReplicaLogDirsResponse.json +41 -0
  255. kafka/protocol/schemas/resources/AlterUserScramCredentialsRequest.json +45 -0
  256. kafka/protocol/schemas/resources/AlterUserScramCredentialsResponse.json +35 -0
  257. kafka/protocol/schemas/resources/ApiVersionsRequest.json +34 -0
  258. kafka/protocol/schemas/resources/ApiVersionsResponse.json +79 -0
  259. kafka/protocol/schemas/resources/ConsumerProtocolAssignment.json +42 -0
  260. kafka/protocol/schemas/resources/ConsumerProtocolSubscription.json +49 -0
  261. kafka/protocol/schemas/resources/CreateAclsRequest.json +46 -0
  262. kafka/protocol/schemas/resources/CreateAclsResponse.json +37 -0
  263. kafka/protocol/schemas/resources/CreatePartitionsRequest.json +47 -0
  264. kafka/protocol/schemas/resources/CreatePartitionsResponse.json +41 -0
  265. kafka/protocol/schemas/resources/CreateTopicsRequest.json +65 -0
  266. kafka/protocol/schemas/resources/CreateTopicsResponse.json +72 -0
  267. kafka/protocol/schemas/resources/DeleteAclsRequest.json +46 -0
  268. kafka/protocol/schemas/resources/DeleteAclsResponse.json +59 -0
  269. kafka/protocol/schemas/resources/DeleteGroupsRequest.json +30 -0
  270. kafka/protocol/schemas/resources/DeleteGroupsResponse.json +36 -0
  271. kafka/protocol/schemas/resources/DeleteRecordsRequest.json +42 -0
  272. kafka/protocol/schemas/resources/DeleteRecordsResponse.json +43 -0
  273. kafka/protocol/schemas/resources/DeleteTopicsRequest.json +43 -0
  274. kafka/protocol/schemas/resources/DeleteTopicsResponse.json +52 -0
  275. kafka/protocol/schemas/resources/DescribeAclsRequest.json +43 -0
  276. kafka/protocol/schemas/resources/DescribeAclsResponse.json +55 -0
  277. kafka/protocol/schemas/resources/DescribeClientQuotasRequest.json +37 -0
  278. kafka/protocol/schemas/resources/DescribeClientQuotasResponse.json +47 -0
  279. kafka/protocol/schemas/resources/DescribeClusterRequest.json +35 -0
  280. kafka/protocol/schemas/resources/DescribeClusterResponse.json +56 -0
  281. kafka/protocol/schemas/resources/DescribeConfigsRequest.json +42 -0
  282. kafka/protocol/schemas/resources/DescribeConfigsResponse.json +69 -0
  283. kafka/protocol/schemas/resources/DescribeGroupsRequest.json +38 -0
  284. kafka/protocol/schemas/resources/DescribeGroupsResponse.json +74 -0
  285. kafka/protocol/schemas/resources/DescribeLogDirsRequest.json +38 -0
  286. kafka/protocol/schemas/resources/DescribeLogDirsResponse.json +65 -0
  287. kafka/protocol/schemas/resources/DescribeProducersRequest.json +32 -0
  288. kafka/protocol/schemas/resources/DescribeProducersResponse.json +55 -0
  289. kafka/protocol/schemas/resources/DescribeQuorumRequest.json +39 -0
  290. kafka/protocol/schemas/resources/DescribeQuorumResponse.json +82 -0
  291. kafka/protocol/schemas/resources/DescribeTopicPartitionsRequest.json +40 -0
  292. kafka/protocol/schemas/resources/DescribeTopicPartitionsResponse.json +66 -0
  293. kafka/protocol/schemas/resources/DescribeTransactionsRequest.json +27 -0
  294. kafka/protocol/schemas/resources/DescribeTransactionsResponse.json +52 -0
  295. kafka/protocol/schemas/resources/DescribeUserScramCredentialsRequest.json +30 -0
  296. kafka/protocol/schemas/resources/DescribeUserScramCredentialsResponse.json +45 -0
  297. kafka/protocol/schemas/resources/ElectLeadersRequest.json +41 -0
  298. kafka/protocol/schemas/resources/ElectLeadersResponse.json +45 -0
  299. kafka/protocol/schemas/resources/EndTxnRequest.json +43 -0
  300. kafka/protocol/schemas/resources/EndTxnResponse.json +41 -0
  301. kafka/protocol/schemas/resources/FetchRequest.json +125 -0
  302. kafka/protocol/schemas/resources/FetchResponse.json +124 -0
  303. kafka/protocol/schemas/resources/FindCoordinatorRequest.json +43 -0
  304. kafka/protocol/schemas/resources/FindCoordinatorResponse.json +58 -0
  305. kafka/protocol/schemas/resources/HeartbeatRequest.json +39 -0
  306. kafka/protocol/schemas/resources/HeartbeatResponse.json +35 -0
  307. kafka/protocol/schemas/resources/IncrementalAlterConfigsRequest.json +44 -0
  308. kafka/protocol/schemas/resources/IncrementalAlterConfigsResponse.json +38 -0
  309. kafka/protocol/schemas/resources/InitProducerIdRequest.json +50 -0
  310. kafka/protocol/schemas/resources/InitProducerIdResponse.json +47 -0
  311. kafka/protocol/schemas/resources/JoinGroupRequest.json +63 -0
  312. kafka/protocol/schemas/resources/JoinGroupResponse.json +69 -0
  313. kafka/protocol/schemas/resources/LeaveGroupRequest.json +47 -0
  314. kafka/protocol/schemas/resources/LeaveGroupResponse.json +47 -0
  315. kafka/protocol/schemas/resources/ListConfigResourcesRequest.json +31 -0
  316. kafka/protocol/schemas/resources/ListConfigResourcesResponse.json +37 -0
  317. kafka/protocol/schemas/resources/ListGroupsRequest.json +36 -0
  318. kafka/protocol/schemas/resources/ListGroupsResponse.json +49 -0
  319. kafka/protocol/schemas/resources/ListOffsetsRequest.json +72 -0
  320. kafka/protocol/schemas/resources/ListOffsetsResponse.json +71 -0
  321. kafka/protocol/schemas/resources/ListPartitionReassignmentsRequest.json +34 -0
  322. kafka/protocol/schemas/resources/ListPartitionReassignmentsResponse.json +46 -0
  323. kafka/protocol/schemas/resources/ListTransactionsRequest.json +40 -0
  324. kafka/protocol/schemas/resources/ListTransactionsResponse.json +42 -0
  325. kafka/protocol/schemas/resources/MetadataRequest.json +56 -0
  326. kafka/protocol/schemas/resources/MetadataResponse.json +101 -0
  327. kafka/protocol/schemas/resources/OffsetCommitRequest.json +76 -0
  328. kafka/protocol/schemas/resources/OffsetCommitResponse.json +71 -0
  329. kafka/protocol/schemas/resources/OffsetDeleteRequest.json +39 -0
  330. kafka/protocol/schemas/resources/OffsetDeleteResponse.json +42 -0
  331. kafka/protocol/schemas/resources/OffsetFetchRequest.json +76 -0
  332. kafka/protocol/schemas/resources/OffsetFetchResponse.json +107 -0
  333. kafka/protocol/schemas/resources/OffsetForLeaderEpochRequest.json +52 -0
  334. kafka/protocol/schemas/resources/OffsetForLeaderEpochResponse.json +51 -0
  335. kafka/protocol/schemas/resources/ProduceRequest.json +73 -0
  336. kafka/protocol/schemas/resources/ProduceResponse.json +96 -0
  337. kafka/protocol/schemas/resources/RequestHeader.json +44 -0
  338. kafka/protocol/schemas/resources/ResponseHeader.json +26 -0
  339. kafka/protocol/schemas/resources/SaslAuthenticateRequest.json +29 -0
  340. kafka/protocol/schemas/resources/SaslAuthenticateResponse.json +34 -0
  341. kafka/protocol/schemas/resources/SaslHandshakeRequest.json +31 -0
  342. kafka/protocol/schemas/resources/SaslHandshakeResponse.json +32 -0
  343. kafka/protocol/schemas/resources/SyncGroupRequest.json +56 -0
  344. kafka/protocol/schemas/resources/SyncGroupResponse.json +46 -0
  345. kafka/protocol/schemas/resources/TxnOffsetCommitRequest.json +68 -0
  346. kafka/protocol/schemas/resources/TxnOffsetCommitResponse.json +47 -0
  347. kafka/protocol/schemas/resources/UpdateFeaturesRequest.json +43 -0
  348. kafka/protocol/schemas/resources/UpdateFeaturesResponse.json +39 -0
  349. kafka/protocol/schemas/resources/WriteTxnMarkersRequest.json +49 -0
  350. kafka/protocol/schemas/resources/WriteTxnMarkersResponse.json +45 -0
  351. kafka/protocol/schemas/resources/__init__.py +0 -0
  352. kafka/record/__init__.py +3 -0
  353. kafka/record/_crc32c.py +161 -0
  354. kafka/record/abc.py +144 -0
  355. kafka/record/default_records.py +782 -0
  356. kafka/record/legacy_records.py +587 -0
  357. kafka/record/memory_records.py +255 -0
  358. kafka/record/util.py +135 -0
  359. kafka/serializer/__init__.py +4 -0
  360. kafka/serializer/abstract.py +20 -0
  361. kafka/serializer/default.py +16 -0
  362. kafka/serializer/json.py +17 -0
  363. kafka/serializer/wrapper.py +21 -0
  364. kafka/structs.py +69 -0
  365. kafka/util.py +159 -0
  366. kafka/vendor/__init__.py +0 -0
  367. kafka/version.py +1 -0
  368. kafka_python-3.0.0.dist-info/METADATA +319 -0
  369. kafka_python-3.0.0.dist-info/RECORD +373 -0
  370. kafka_python-3.0.0.dist-info/WHEEL +5 -0
  371. kafka_python-3.0.0.dist-info/entry_points.txt +2 -0
  372. kafka_python-3.0.0.dist-info/licenses/LICENSE +202 -0
  373. kafka_python-3.0.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,451 @@
1
+ import collections
2
+
3
+ from .api import Request, Response
4
+ from .struct import Struct
5
+ from .types import Array, Bytes, Int16, Int32, Schema, String
6
+
7
+
8
+ DEFAULT_GENERATION_ID = -1
9
+ UNKNOWN_MEMBER_ID = ''
10
+
11
+ GroupMember = collections.namedtuple("GroupMember", ["member_id", "group_instance_id", "metadata"])
12
+ GroupMember.__new__.__defaults__ = (None,) * len(GroupMember._fields)
13
+
14
+
15
+ class JoinGroupResponse_v0(Response):
16
+ API_KEY = 11
17
+ API_VERSION = 0
18
+ SCHEMA = Schema(
19
+ ('error_code', Int16),
20
+ ('generation_id', Int32),
21
+ ('protocol_name', String('utf-8')),
22
+ ('leader', String('utf-8')),
23
+ ('member_id', String('utf-8')),
24
+ ('members', Array(
25
+ ('member_id', String('utf-8')),
26
+ ('metadata', Bytes)))
27
+ )
28
+ ALIASES = {
29
+ 'group_protocol': 'protocol_name',
30
+ 'leader_id': 'leader',
31
+ }
32
+
33
+
34
+ class JoinGroupResponse_v1(Response):
35
+ API_KEY = 11
36
+ API_VERSION = 1
37
+ SCHEMA = JoinGroupResponse_v0.SCHEMA
38
+ ALIASES = JoinGroupResponse_v0.ALIASES
39
+
40
+
41
+ class JoinGroupResponse_v2(Response):
42
+ API_KEY = 11
43
+ API_VERSION = 2
44
+ SCHEMA = Schema(
45
+ ('throttle_time_ms', Int32),
46
+ ('error_code', Int16),
47
+ ('generation_id', Int32),
48
+ ('protocol_name', String('utf-8')),
49
+ ('leader', String('utf-8')),
50
+ ('member_id', String('utf-8')),
51
+ ('members', Array(
52
+ ('member_id', String('utf-8')),
53
+ ('metadata', Bytes)))
54
+ )
55
+ ALIASES = JoinGroupResponse_v1.ALIASES
56
+
57
+
58
+ class JoinGroupResponse_v3(Response):
59
+ API_KEY = 11
60
+ API_VERSION = 3
61
+ SCHEMA = JoinGroupResponse_v2.SCHEMA
62
+ ALIASES = JoinGroupResponse_v2.ALIASES
63
+
64
+
65
+ class JoinGroupResponse_v4(Response):
66
+ API_KEY = 11
67
+ API_VERSION = 4
68
+ SCHEMA = JoinGroupResponse_v3.SCHEMA
69
+ ALIASES = JoinGroupResponse_v3.ALIASES
70
+
71
+
72
+ class JoinGroupResponse_v5(Response):
73
+ API_KEY = 11
74
+ API_VERSION = 5
75
+ SCHEMA = Schema(
76
+ ('throttle_time_ms', Int32),
77
+ ('error_code', Int16),
78
+ ('generation_id', Int32),
79
+ ('protocol_name', String('utf-8')),
80
+ ('leader', String('utf-8')),
81
+ ('member_id', String('utf-8')),
82
+ ('members', Array(
83
+ ('member_id', String('utf-8')),
84
+ ('group_instance_id', String('utf-8')),
85
+ ('metadata', Bytes)))
86
+ )
87
+ ALIASES = JoinGroupResponse_v4.ALIASES
88
+
89
+
90
+ class JoinGroupRequest_v0(Request):
91
+ API_KEY = 11
92
+ API_VERSION = 0
93
+ SCHEMA = Schema(
94
+ ('group_id', String('utf-8')),
95
+ ('session_timeout_ms', Int32),
96
+ ('member_id', String('utf-8')),
97
+ ('protocol_type', String('utf-8')),
98
+ ('protocols', Array(
99
+ ('name', String('utf-8')),
100
+ ('metadata', Bytes)))
101
+ )
102
+ ALIASES = {
103
+ 'group': 'group_id',
104
+ 'session_timeout': 'session_timeout_ms',
105
+ 'group_protocols': 'protocols',
106
+ }
107
+
108
+
109
+ class JoinGroupRequest_v1(Request):
110
+ API_KEY = 11
111
+ API_VERSION = 1
112
+ SCHEMA = Schema(
113
+ ('group_id', String('utf-8')),
114
+ ('session_timeout_ms', Int32),
115
+ ('rebalance_timeout_ms', Int32),
116
+ ('member_id', String('utf-8')),
117
+ ('protocol_type', String('utf-8')),
118
+ ('protocols', Array(
119
+ ('name', String('utf-8')),
120
+ ('metadata', Bytes)))
121
+ )
122
+ ALIASES = {
123
+ 'group': 'group_id',
124
+ 'session_timeout': 'session_timeout_ms',
125
+ 'rebalance_timeout': 'rebalance_timeout_ms',
126
+ 'group_protocols': 'protocols',
127
+ }
128
+
129
+
130
+ class JoinGroupRequest_v2(Request):
131
+ API_KEY = 11
132
+ API_VERSION = 2
133
+ SCHEMA = JoinGroupRequest_v1.SCHEMA
134
+ ALIASES = JoinGroupRequest_v1.ALIASES
135
+
136
+
137
+ class JoinGroupRequest_v3(Request):
138
+ API_KEY = 11
139
+ API_VERSION = 3
140
+ SCHEMA = JoinGroupRequest_v2.SCHEMA
141
+ ALIASES = JoinGroupRequest_v2.ALIASES
142
+
143
+
144
+ class JoinGroupRequest_v4(Request):
145
+ API_KEY = 11
146
+ API_VERSION = 4
147
+ SCHEMA = JoinGroupRequest_v3.SCHEMA
148
+ ALIASES = JoinGroupRequest_v3.ALIASES
149
+
150
+
151
+ class JoinGroupRequest_v5(Request):
152
+ API_KEY = 11
153
+ API_VERSION = 5
154
+ SCHEMA = Schema(
155
+ ('group_id', String('utf-8')),
156
+ ('session_timeout_ms', Int32),
157
+ ('rebalance_timeout_ms', Int32),
158
+ ('member_id', String('utf-8')),
159
+ ('group_instance_id', String('utf-8')),
160
+ ('protocol_type', String('utf-8')),
161
+ ('protocols', Array(
162
+ ('name', String('utf-8')),
163
+ ('metadata', Bytes)))
164
+ )
165
+ ALIASES = JoinGroupRequest_v4.ALIASES
166
+
167
+
168
+ JoinGroupRequest = [
169
+ JoinGroupRequest_v0, JoinGroupRequest_v1, JoinGroupRequest_v2,
170
+ JoinGroupRequest_v3, JoinGroupRequest_v4, JoinGroupRequest_v5,
171
+
172
+ ]
173
+ JoinGroupResponse = [
174
+ JoinGroupResponse_v0, JoinGroupResponse_v1, JoinGroupResponse_v2,
175
+ JoinGroupResponse_v3, JoinGroupResponse_v4, JoinGroupResponse_v5,
176
+ ]
177
+
178
+
179
+ # Currently unused -- see kafka.coordinator.protocol
180
+ class ProtocolMetadata(Struct):
181
+ SCHEMA = Schema(
182
+ ('version', Int16),
183
+ ('subscription', Array(String('utf-8'))), # topics list
184
+ ('user_data', Bytes)
185
+ )
186
+
187
+
188
+ class SyncGroupResponse_v0(Response):
189
+ API_KEY = 14
190
+ API_VERSION = 0
191
+ SCHEMA = Schema(
192
+ ('error_code', Int16),
193
+ ('assignment', Bytes)
194
+ )
195
+ ALIASES = {
196
+ 'member_assignment': 'assignment',
197
+ }
198
+
199
+
200
+ class SyncGroupResponse_v1(Response):
201
+ API_KEY = 14
202
+ API_VERSION = 1
203
+ SCHEMA = Schema(
204
+ ('throttle_time_ms', Int32),
205
+ ('error_code', Int16),
206
+ ('assignment', Bytes)
207
+ )
208
+ ALIASES = SyncGroupResponse_v0.ALIASES
209
+
210
+
211
+ class SyncGroupResponse_v2(Response):
212
+ API_KEY = 14
213
+ API_VERSION = 2
214
+ SCHEMA = SyncGroupResponse_v1.SCHEMA
215
+ ALIASES = SyncGroupResponse_v1.ALIASES
216
+
217
+
218
+ class SyncGroupResponse_v3(Response):
219
+ API_KEY = 14
220
+ API_VERSION = 3
221
+ SCHEMA = SyncGroupResponse_v2.SCHEMA
222
+ ALIASES = SyncGroupResponse_v2.ALIASES
223
+
224
+
225
+ class SyncGroupRequest_v0(Request):
226
+ API_KEY = 14
227
+ API_VERSION = 0
228
+ SCHEMA = Schema(
229
+ ('group_id', String('utf-8')),
230
+ ('generation_id', Int32),
231
+ ('member_id', String('utf-8')),
232
+ ('assignments', Array(
233
+ ('member_id', String('utf-8')),
234
+ ('assignment', Bytes)))
235
+ )
236
+ ALIASES = {
237
+ 'group': 'group_id',
238
+ 'group_assignment': 'assignments',
239
+ }
240
+
241
+
242
+ class SyncGroupRequest_v1(Request):
243
+ API_KEY = 14
244
+ API_VERSION = 1
245
+ SCHEMA = SyncGroupRequest_v0.SCHEMA
246
+ ALIASES = SyncGroupRequest_v0.ALIASES
247
+
248
+
249
+ class SyncGroupRequest_v2(Request):
250
+ API_KEY = 14
251
+ API_VERSION = 2
252
+ SCHEMA = SyncGroupRequest_v1.SCHEMA
253
+ ALIASES = SyncGroupRequest_v1.ALIASES
254
+
255
+
256
+ class SyncGroupRequest_v3(Request):
257
+ API_KEY = 14
258
+ API_VERSION = 3
259
+ SCHEMA = Schema(
260
+ ('group_id', String('utf-8')),
261
+ ('generation_id', Int32),
262
+ ('member_id', String('utf-8')),
263
+ ('group_instance_id', String('utf-8')),
264
+ ('assignments', Array(
265
+ ('member_id', String('utf-8')),
266
+ ('assignment', Bytes)))
267
+ )
268
+ ALIASES = SyncGroupRequest_v2.ALIASES
269
+
270
+
271
+ SyncGroupRequest = [
272
+ SyncGroupRequest_v0, SyncGroupRequest_v1, SyncGroupRequest_v2,
273
+ SyncGroupRequest_v3,
274
+ ]
275
+ SyncGroupResponse = [
276
+ SyncGroupResponse_v0, SyncGroupResponse_v1, SyncGroupResponse_v2,
277
+ SyncGroupResponse_v3,
278
+ ]
279
+
280
+
281
+ # Currently unused -- see kafka.coordinator.protocol
282
+ class MemberAssignment(Struct):
283
+ SCHEMA = Schema(
284
+ ('version', Int16),
285
+ ('assignment', Array(
286
+ ('topic', String('utf-8')),
287
+ ('partitions', Array(Int32)))),
288
+ ('user_data', Bytes)
289
+ )
290
+
291
+
292
+ class HeartbeatResponse_v0(Response):
293
+ API_KEY = 12
294
+ API_VERSION = 0
295
+ SCHEMA = Schema(
296
+ ('error_code', Int16)
297
+ )
298
+
299
+
300
+ class HeartbeatResponse_v1(Response):
301
+ API_KEY = 12
302
+ API_VERSION = 1
303
+ SCHEMA = Schema(
304
+ ('throttle_time_ms', Int32),
305
+ ('error_code', Int16)
306
+ )
307
+
308
+
309
+ class HeartbeatResponse_v2(Response):
310
+ API_KEY = 12
311
+ API_VERSION = 2
312
+ SCHEMA = HeartbeatResponse_v1.SCHEMA
313
+
314
+
315
+ class HeartbeatResponse_v3(Response):
316
+ API_KEY = 12
317
+ API_VERSION = 3
318
+ SCHEMA = HeartbeatResponse_v2.SCHEMA
319
+
320
+
321
+ class HeartbeatRequest_v0(Request):
322
+ API_KEY = 12
323
+ API_VERSION = 0
324
+ SCHEMA = Schema(
325
+ ('group_id', String('utf-8')),
326
+ ('generation_id', Int32),
327
+ ('member_id', String('utf-8'))
328
+ )
329
+ ALIASES = {
330
+ 'group': 'group_id',
331
+ }
332
+
333
+
334
+ class HeartbeatRequest_v1(Request):
335
+ API_KEY = 12
336
+ API_VERSION = 1
337
+ SCHEMA = HeartbeatRequest_v0.SCHEMA
338
+ ALIASES = HeartbeatRequest_v0.ALIASES
339
+
340
+
341
+ class HeartbeatRequest_v2(Request):
342
+ API_KEY = 12
343
+ API_VERSION = 2
344
+ SCHEMA = HeartbeatRequest_v1.SCHEMA
345
+ ALIASES = HeartbeatRequest_v1.ALIASES
346
+
347
+
348
+ class HeartbeatRequest_v3(Request):
349
+ API_KEY = 12
350
+ API_VERSION = 3
351
+ SCHEMA = Schema(
352
+ ('group_id', String('utf-8')),
353
+ ('generation_id', Int32),
354
+ ('member_id', String('utf-8')),
355
+ ('group_instance_id', String('utf-8'))
356
+ )
357
+ ALIASES = HeartbeatRequest_v2.ALIASES
358
+
359
+
360
+ HeartbeatRequest = [
361
+ HeartbeatRequest_v0, HeartbeatRequest_v1, HeartbeatRequest_v2,
362
+ HeartbeatRequest_v3,
363
+ ]
364
+ HeartbeatResponse = [
365
+ HeartbeatResponse_v0, HeartbeatResponse_v1, HeartbeatResponse_v2,
366
+ HeartbeatResponse_v3,
367
+ ]
368
+
369
+
370
+ class LeaveGroupResponse_v0(Response):
371
+ API_KEY = 13
372
+ API_VERSION = 0
373
+ SCHEMA = Schema(
374
+ ('error_code', Int16)
375
+ )
376
+
377
+
378
+ class LeaveGroupResponse_v1(Response):
379
+ API_KEY = 13
380
+ API_VERSION = 1
381
+ SCHEMA = Schema(
382
+ ('throttle_time_ms', Int32),
383
+ ('error_code', Int16)
384
+ )
385
+
386
+
387
+ class LeaveGroupResponse_v2(Response):
388
+ API_KEY = 13
389
+ API_VERSION = 2
390
+ SCHEMA = LeaveGroupResponse_v1.SCHEMA
391
+
392
+
393
+ class LeaveGroupResponse_v3(Response):
394
+ API_KEY = 13
395
+ API_VERSION = 3
396
+ SCHEMA = Schema(
397
+ ('throttle_time_ms', Int32),
398
+ ('error_code', Int16),
399
+ ('members', Array(
400
+ ('member_id', String('utf-8')),
401
+ ('group_instance_id', String('utf-8')),
402
+ ('error_code', Int16)))
403
+ )
404
+
405
+
406
+ class LeaveGroupRequest_v0(Request):
407
+ API_KEY = 13
408
+ API_VERSION = 0
409
+ SCHEMA = Schema(
410
+ ('group_id', String('utf-8')),
411
+ ('member_id', String('utf-8'))
412
+ )
413
+ ALIASES = {
414
+ 'group': 'group_id',
415
+ }
416
+
417
+
418
+ class LeaveGroupRequest_v1(Request):
419
+ API_KEY = 13
420
+ API_VERSION = 1
421
+ SCHEMA = LeaveGroupRequest_v0.SCHEMA
422
+ ALIASES = LeaveGroupRequest_v0.ALIASES
423
+
424
+
425
+ class LeaveGroupRequest_v2(Request):
426
+ API_KEY = 13
427
+ API_VERSION = 2
428
+ SCHEMA = LeaveGroupRequest_v1.SCHEMA
429
+ ALIASES = LeaveGroupRequest_v1.ALIASES
430
+
431
+
432
+ class LeaveGroupRequest_v3(Request):
433
+ API_KEY = 13
434
+ API_VERSION = 3
435
+ SCHEMA = Schema(
436
+ ('group_id', String('utf-8')),
437
+ ('members', Array(
438
+ ('member_id', String('utf-8')),
439
+ ('group_instance_id', String('utf-8'))))
440
+ )
441
+ ALIASES = LeaveGroupRequest_v2.ALIASES
442
+
443
+
444
+ LeaveGroupRequest = [
445
+ LeaveGroupRequest_v0, LeaveGroupRequest_v1, LeaveGroupRequest_v2,
446
+ LeaveGroupRequest_v3,
447
+ ]
448
+ LeaveGroupResponse = [
449
+ LeaveGroupResponse_v0, LeaveGroupResponse_v1, LeaveGroupResponse_v2,
450
+ LeaveGroupResponse_v3,
451
+ ]
@@ -0,0 +1,42 @@
1
+ from .api import Request, Response
2
+ from .types import Int16, Int32, Int64, Schema, String
3
+
4
+
5
+ class InitProducerIdResponse_v0(Response):
6
+ API_KEY = 22
7
+ API_VERSION = 0
8
+ SCHEMA = Schema(
9
+ ('throttle_time_ms', Int32),
10
+ ('error_code', Int16),
11
+ ('producer_id', Int64),
12
+ ('producer_epoch', Int16),
13
+ )
14
+
15
+
16
+ class InitProducerIdResponse_v1(Response):
17
+ API_KEY = 22
18
+ API_VERSION = 1
19
+ SCHEMA = InitProducerIdResponse_v0.SCHEMA
20
+
21
+
22
+ class InitProducerIdRequest_v0(Request):
23
+ API_KEY = 22
24
+ API_VERSION = 0
25
+ SCHEMA = Schema(
26
+ ('transactional_id', String('utf-8')),
27
+ ('transaction_timeout_ms', Int32),
28
+ )
29
+
30
+
31
+ class InitProducerIdRequest_v1(Request):
32
+ API_KEY = 22
33
+ API_VERSION = 1
34
+ SCHEMA = InitProducerIdRequest_v0.SCHEMA
35
+
36
+
37
+ InitProducerIdRequest = [
38
+ InitProducerIdRequest_v0, InitProducerIdRequest_v1,
39
+ ]
40
+ InitProducerIdResponse = [
41
+ InitProducerIdResponse_v0, InitProducerIdResponse_v1,
42
+ ]
@@ -0,0 +1,186 @@
1
+ from .api import Request, Response
2
+ from .types import Array, Int8, Int16, Int32, Int64, Schema, String
3
+
4
+ UNKNOWN_OFFSET = -1
5
+
6
+
7
+ class OffsetResetStrategy:
8
+ LATEST = -1
9
+ EARLIEST = -2
10
+ NONE = 0
11
+
12
+
13
+ class ListOffsetsResponse_v0(Response):
14
+ API_KEY = 2
15
+ API_VERSION = 0
16
+ SCHEMA = Schema(
17
+ ('topics', Array(
18
+ ('name', String('utf-8')),
19
+ ('partitions', Array(
20
+ ('partition_index', Int32),
21
+ ('error_code', Int16),
22
+ ('old_style_offsets', Array(Int64))))))
23
+ )
24
+
25
+ class ListOffsetsResponse_v1(Response):
26
+ API_KEY = 2
27
+ API_VERSION = 1
28
+ SCHEMA = Schema(
29
+ ('topics', Array(
30
+ ('name', String('utf-8')),
31
+ ('partitions', Array(
32
+ ('partition_index', Int32),
33
+ ('error_code', Int16),
34
+ ('timestamp', Int64),
35
+ ('offset', Int64)))))
36
+ )
37
+
38
+
39
+ class ListOffsetsResponse_v2(Response):
40
+ API_KEY = 2
41
+ API_VERSION = 2
42
+ SCHEMA = Schema(
43
+ ('throttle_time_ms', Int32),
44
+ ('topics', Array(
45
+ ('name', String('utf-8')),
46
+ ('partitions', Array(
47
+ ('partition_index', Int32),
48
+ ('error_code', Int16),
49
+ ('timestamp', Int64),
50
+ ('offset', Int64)))))
51
+ )
52
+
53
+
54
+ class ListOffsetsResponse_v3(Response):
55
+ """
56
+ on quota violation, brokers send out responses before throttling
57
+ """
58
+ API_KEY = 2
59
+ API_VERSION = 3
60
+ SCHEMA = ListOffsetsResponse_v2.SCHEMA
61
+
62
+
63
+ class ListOffsetsResponse_v4(Response):
64
+ """
65
+ Add leader_epoch to response
66
+ """
67
+ API_KEY = 2
68
+ API_VERSION = 4
69
+ SCHEMA = Schema(
70
+ ('throttle_time_ms', Int32),
71
+ ('topics', Array(
72
+ ('name', String('utf-8')),
73
+ ('partitions', Array(
74
+ ('partition_index', Int32),
75
+ ('error_code', Int16),
76
+ ('timestamp', Int64),
77
+ ('offset', Int64),
78
+ ('leader_epoch', Int32)))))
79
+ )
80
+
81
+
82
+ class ListOffsetsResponse_v5(Response):
83
+ """
84
+ adds a new error code, OFFSET_NOT_AVAILABLE
85
+ """
86
+ API_KEY = 2
87
+ API_VERSION = 5
88
+ SCHEMA = ListOffsetsResponse_v4.SCHEMA
89
+
90
+
91
+ class ListOffsetsRequest_v0(Request):
92
+ API_KEY = 2
93
+ API_VERSION = 0
94
+ SCHEMA = Schema(
95
+ ('replica_id', Int32),
96
+ ('topics', Array(
97
+ ('name', String('utf-8')),
98
+ ('partitions', Array(
99
+ ('partition_index', Int32),
100
+ ('timestamp', Int64),
101
+ ('max_num_offsets', Int32)))))
102
+ )
103
+ DEFAULTS = {
104
+ 'replica_id': -1
105
+ }
106
+
107
+ class ListOffsetsRequest_v1(Request):
108
+ API_KEY = 2
109
+ API_VERSION = 1
110
+ SCHEMA = Schema(
111
+ ('replica_id', Int32),
112
+ ('topics', Array(
113
+ ('name', String('utf-8')),
114
+ ('partitions', Array(
115
+ ('partition_index', Int32),
116
+ ('timestamp', Int64)))))
117
+ )
118
+ DEFAULTS = {
119
+ 'replica_id': -1
120
+ }
121
+
122
+
123
+ class ListOffsetsRequest_v2(Request):
124
+ API_KEY = 2
125
+ API_VERSION = 2
126
+ SCHEMA = Schema(
127
+ ('replica_id', Int32),
128
+ ('isolation_level', Int8), # <- added isolation_level
129
+ ('topics', Array(
130
+ ('name', String('utf-8')),
131
+ ('partitions', Array(
132
+ ('partition_index', Int32),
133
+ ('timestamp', Int64)))))
134
+ )
135
+ DEFAULTS = {
136
+ 'replica_id': -1
137
+ }
138
+
139
+
140
+ class ListOffsetsRequest_v3(Request):
141
+ API_KEY = 2
142
+ API_VERSION = 3
143
+ SCHEMA = ListOffsetsRequest_v2.SCHEMA
144
+ DEFAULTS = {
145
+ 'replica_id': -1
146
+ }
147
+
148
+
149
+ class ListOffsetsRequest_v4(Request):
150
+ """
151
+ Add current_leader_epoch to request
152
+ """
153
+ API_KEY = 2
154
+ API_VERSION = 4
155
+ SCHEMA = Schema(
156
+ ('replica_id', Int32),
157
+ ('isolation_level', Int8),
158
+ ('topics', Array(
159
+ ('name', String('utf-8')),
160
+ ('partitions', Array(
161
+ ('partition_index', Int32),
162
+ ('current_leader_epoch', Int32),
163
+ ('timestamp', Int64)))))
164
+ )
165
+ DEFAULTS = {
166
+ 'replica_id': -1
167
+ }
168
+
169
+
170
+ class ListOffsetsRequest_v5(Request):
171
+ API_KEY = 2
172
+ API_VERSION = 5
173
+ SCHEMA = ListOffsetsRequest_v4.SCHEMA
174
+ DEFAULTS = {
175
+ 'replica_id': -1
176
+ }
177
+
178
+
179
+ ListOffsetsRequest = [
180
+ ListOffsetsRequest_v0, ListOffsetsRequest_v1, ListOffsetsRequest_v2,
181
+ ListOffsetsRequest_v3, ListOffsetsRequest_v4, ListOffsetsRequest_v5,
182
+ ]
183
+ ListOffsetsResponse = [
184
+ ListOffsetsResponse_v0, ListOffsetsResponse_v1, ListOffsetsResponse_v2,
185
+ ListOffsetsResponse_v3, ListOffsetsResponse_v4, ListOffsetsResponse_v5,
186
+ ]