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,105 @@
1
+ # Generated by generate_stubs.py (Python 3.14)
2
+ import uuid
3
+ from typing import Any, Self
4
+
5
+ from enum import IntEnum
6
+ from kafka.protocol.api_message import ApiMessage
7
+ from kafka.protocol.data_container import DataContainer
8
+
9
+ __all__ = ['CoordinatorType', 'FindCoordinatorRequest', 'FindCoordinatorResponse']
10
+
11
+ class CoordinatorType(EnumHelper, IntEnum):
12
+ GROUP: int
13
+ TRANSACTION: int
14
+ SHARE: int
15
+
16
+ class FindCoordinatorRequest(ApiMessage):
17
+ key: str
18
+ key_type: int
19
+ coordinator_keys: list[str]
20
+ def __init__(
21
+ self,
22
+ *args: Any,
23
+ key: str = ...,
24
+ key_type: int = ...,
25
+ coordinator_keys: list[str] = ...,
26
+ version: int | None = None,
27
+ **kwargs: Any,
28
+ ) -> None: ...
29
+ @property
30
+ def version(self) -> int | None: ...
31
+ def to_dict(self, meta: bool = False, json: bool = True) -> dict: ...
32
+ name: str
33
+ type: str
34
+ API_KEY: int
35
+ API_VERSION: int
36
+ valid_versions: tuple[int, int]
37
+ min_version: int
38
+ max_version: int
39
+ @property
40
+ def header(self) -> Any: ...
41
+ @classmethod
42
+ def is_request(cls) -> bool: ...
43
+ def expect_response(self) -> bool: ...
44
+ def with_header(self, correlation_id: int = 0, client_id: str = "kafka-python") -> None: ...
45
+
46
+ class FindCoordinatorResponse(ApiMessage):
47
+ class Coordinator(DataContainer):
48
+ key: str
49
+ node_id: int
50
+ host: str
51
+ port: int
52
+ error_code: int
53
+ error_message: str | None
54
+ def __init__(
55
+ self,
56
+ *args: Any,
57
+ key: str = ...,
58
+ node_id: int = ...,
59
+ host: str = ...,
60
+ port: int = ...,
61
+ error_code: int = ...,
62
+ error_message: str | None = ...,
63
+ version: int | None = None,
64
+ **kwargs: Any,
65
+ ) -> None: ...
66
+ @property
67
+ def version(self) -> int | None: ...
68
+ def to_dict(self, meta: bool = False, json: bool = True) -> dict: ...
69
+
70
+ throttle_time_ms: int
71
+ error_code: int
72
+ error_message: str | None
73
+ node_id: int
74
+ host: str
75
+ port: int
76
+ coordinators: list[Coordinator]
77
+ def __init__(
78
+ self,
79
+ *args: Any,
80
+ throttle_time_ms: int = ...,
81
+ error_code: int = ...,
82
+ error_message: str | None = ...,
83
+ node_id: int = ...,
84
+ host: str = ...,
85
+ port: int = ...,
86
+ coordinators: list[Coordinator] = ...,
87
+ version: int | None = None,
88
+ **kwargs: Any,
89
+ ) -> None: ...
90
+ @property
91
+ def version(self) -> int | None: ...
92
+ def to_dict(self, meta: bool = False, json: bool = True) -> dict: ...
93
+ name: str
94
+ type: str
95
+ API_KEY: int
96
+ API_VERSION: int
97
+ valid_versions: tuple[int, int]
98
+ min_version: int
99
+ max_version: int
100
+ @property
101
+ def header(self) -> Any: ...
102
+ @classmethod
103
+ def is_request(cls) -> bool: ...
104
+ def expect_response(self) -> bool: ...
105
+ def with_header(self, correlation_id: int = 0, client_id: str = "kafka-python") -> None: ...
@@ -0,0 +1,34 @@
1
+ from __future__ import annotations
2
+
3
+ from ..api_message import ApiMessage
4
+
5
+ from kafka.util import classproperty
6
+
7
+
8
+ class MetadataRequest(ApiMessage):
9
+ ALL_TOPICS = None
10
+ NO_TOPICS = []
11
+
12
+ def encode(self, version=None, header=False, framed=False):
13
+ # Fixup v0 ALL_TOPICS => []
14
+ if version == 0 or self.API_VERSION == 0:
15
+ if self.topics is None: # pylint: disable=E0203
16
+ self.topics = []
17
+ return super().encode(version=version, header=header, framed=framed)
18
+
19
+
20
+ class MetadataResponse(ApiMessage):
21
+ @classmethod
22
+ def json_patch(cls, json):
23
+ # cluster_authorized_operations
24
+ json['fields'][5]['name'] = 'authorized_operations'
25
+ json['fields'][5]['type'] = 'bitfield'
26
+ # topic_authorized_operations
27
+ json['fields'][4]['fields'][5]['name'] = 'authorized_operations'
28
+ json['fields'][4]['fields'][5]['type'] = 'bitfield'
29
+ return json
30
+
31
+
32
+ __all__ = [
33
+ 'MetadataRequest', 'MetadataResponse',
34
+ ]
@@ -0,0 +1,160 @@
1
+ # Generated by generate_stubs.py (Python 3.14)
2
+ import uuid
3
+ from typing import Any, Self
4
+
5
+ from kafka.protocol.api_message import ApiMessage
6
+ from kafka.protocol.data_container import DataContainer
7
+
8
+ __all__ = ['MetadataRequest', 'MetadataResponse']
9
+
10
+ class MetadataRequest(ApiMessage):
11
+ class MetadataRequestTopic(DataContainer):
12
+ topic_id: uuid.UUID
13
+ name: str | None
14
+ def __init__(
15
+ self,
16
+ *args: Any,
17
+ topic_id: uuid.UUID = ...,
18
+ name: str | None = ...,
19
+ version: int | None = None,
20
+ **kwargs: Any,
21
+ ) -> None: ...
22
+ @property
23
+ def version(self) -> int | None: ...
24
+ def to_dict(self, meta: bool = False, json: bool = True) -> dict: ...
25
+
26
+ topics: list[MetadataRequestTopic] | None
27
+ allow_auto_topic_creation: bool
28
+ include_cluster_authorized_operations: bool
29
+ include_topic_authorized_operations: bool
30
+ def __init__(
31
+ self,
32
+ *args: Any,
33
+ topics: list[MetadataRequestTopic] | None = ...,
34
+ allow_auto_topic_creation: bool = ...,
35
+ include_cluster_authorized_operations: bool = ...,
36
+ include_topic_authorized_operations: bool = ...,
37
+ version: int | None = None,
38
+ **kwargs: Any,
39
+ ) -> None: ...
40
+ @property
41
+ def version(self) -> int | None: ...
42
+ def to_dict(self, meta: bool = False, json: bool = True) -> dict: ...
43
+ name: str
44
+ type: str
45
+ API_KEY: int
46
+ API_VERSION: int
47
+ valid_versions: tuple[int, int]
48
+ min_version: int
49
+ max_version: int
50
+ @property
51
+ def header(self) -> Any: ...
52
+ @classmethod
53
+ def is_request(cls) -> bool: ...
54
+ def expect_response(self) -> bool: ...
55
+ def with_header(self, correlation_id: int = 0, client_id: str = "kafka-python") -> None: ...
56
+
57
+ class MetadataResponse(ApiMessage):
58
+ class MetadataResponseBroker(DataContainer):
59
+ node_id: int
60
+ host: str
61
+ port: int
62
+ rack: str | None
63
+ def __init__(
64
+ self,
65
+ *args: Any,
66
+ node_id: int = ...,
67
+ host: str = ...,
68
+ port: int = ...,
69
+ rack: str | None = ...,
70
+ version: int | None = None,
71
+ **kwargs: Any,
72
+ ) -> None: ...
73
+ @property
74
+ def version(self) -> int | None: ...
75
+ def to_dict(self, meta: bool = False, json: bool = True) -> dict: ...
76
+
77
+ class MetadataResponseTopic(DataContainer):
78
+ class MetadataResponsePartition(DataContainer):
79
+ error_code: int
80
+ partition_index: int
81
+ leader_id: int
82
+ leader_epoch: int
83
+ replica_nodes: list[int]
84
+ isr_nodes: list[int]
85
+ offline_replicas: list[int]
86
+ def __init__(
87
+ self,
88
+ *args: Any,
89
+ error_code: int = ...,
90
+ partition_index: int = ...,
91
+ leader_id: int = ...,
92
+ leader_epoch: int = ...,
93
+ replica_nodes: list[int] = ...,
94
+ isr_nodes: list[int] = ...,
95
+ offline_replicas: list[int] = ...,
96
+ version: int | None = None,
97
+ **kwargs: Any,
98
+ ) -> None: ...
99
+ @property
100
+ def version(self) -> int | None: ...
101
+ def to_dict(self, meta: bool = False, json: bool = True) -> dict: ...
102
+
103
+ error_code: int
104
+ name: str | None
105
+ topic_id: uuid.UUID
106
+ is_internal: bool
107
+ partitions: list[MetadataResponsePartition]
108
+ authorized_operations: set[int]
109
+ def __init__(
110
+ self,
111
+ *args: Any,
112
+ error_code: int = ...,
113
+ name: str | None = ...,
114
+ topic_id: uuid.UUID = ...,
115
+ is_internal: bool = ...,
116
+ partitions: list[MetadataResponsePartition] = ...,
117
+ authorized_operations: set[int] = ...,
118
+ version: int | None = None,
119
+ **kwargs: Any,
120
+ ) -> None: ...
121
+ @property
122
+ def version(self) -> int | None: ...
123
+ def to_dict(self, meta: bool = False, json: bool = True) -> dict: ...
124
+
125
+ throttle_time_ms: int
126
+ brokers: list[MetadataResponseBroker]
127
+ cluster_id: str | None
128
+ controller_id: int
129
+ topics: list[MetadataResponseTopic]
130
+ authorized_operations: set[int]
131
+ error_code: int
132
+ def __init__(
133
+ self,
134
+ *args: Any,
135
+ throttle_time_ms: int = ...,
136
+ brokers: list[MetadataResponseBroker] = ...,
137
+ cluster_id: str | None = ...,
138
+ controller_id: int = ...,
139
+ topics: list[MetadataResponseTopic] = ...,
140
+ authorized_operations: set[int] = ...,
141
+ error_code: int = ...,
142
+ version: int | None = None,
143
+ **kwargs: Any,
144
+ ) -> None: ...
145
+ @property
146
+ def version(self) -> int | None: ...
147
+ def to_dict(self, meta: bool = False, json: bool = True) -> dict: ...
148
+ name: str
149
+ type: str
150
+ API_KEY: int
151
+ API_VERSION: int
152
+ valid_versions: tuple[int, int]
153
+ min_version: int
154
+ max_version: int
155
+ @property
156
+ def header(self) -> Any: ...
157
+ @classmethod
158
+ def is_request(cls) -> bool: ...
159
+ def expect_response(self) -> bool: ...
160
+ def with_header(self, correlation_id: int = 0, client_id: str = "kafka-python") -> None: ...
File without changes
@@ -0,0 +1,17 @@
1
+ from abc import ABC, abstractmethod
2
+
3
+
4
+ class AbstractType(ABC):
5
+ @classmethod
6
+ @abstractmethod
7
+ def encode(cls, value): # pylint: disable=no-self-argument
8
+ pass
9
+
10
+ @classmethod
11
+ @abstractmethod
12
+ def decode(cls, data): # pylint: disable=no-self-argument
13
+ pass
14
+
15
+ @classmethod
16
+ def repr(cls, value):
17
+ return repr(value)
@@ -0,0 +1,54 @@
1
+ from .api import Request, Response
2
+ from .types import Int16, Int32, Int64, Schema, String
3
+
4
+
5
+ class AddOffsetsToTxnResponse_v0(Response):
6
+ API_KEY = 25
7
+ API_VERSION = 0
8
+ SCHEMA = Schema(
9
+ ('throttle_time_ms', Int32),
10
+ ('error_code', Int16),
11
+ )
12
+
13
+
14
+ class AddOffsetsToTxnResponse_v1(Response):
15
+ API_KEY = 25
16
+ API_VERSION = 1
17
+ SCHEMA = AddOffsetsToTxnResponse_v0.SCHEMA
18
+
19
+
20
+ class AddOffsetsToTxnResponse_v2(Response):
21
+ API_KEY = 25
22
+ API_VERSION = 2
23
+ SCHEMA = AddOffsetsToTxnResponse_v1.SCHEMA
24
+
25
+
26
+ class AddOffsetsToTxnRequest_v0(Request):
27
+ API_KEY = 25
28
+ API_VERSION = 0
29
+ SCHEMA = Schema(
30
+ ('transactional_id', String('utf-8')),
31
+ ('producer_id', Int64),
32
+ ('producer_epoch', Int16),
33
+ ('group_id', String('utf-8')),
34
+ )
35
+
36
+
37
+ class AddOffsetsToTxnRequest_v1(Request):
38
+ API_KEY = 25
39
+ API_VERSION = 1
40
+ SCHEMA = AddOffsetsToTxnRequest_v0.SCHEMA
41
+
42
+
43
+ class AddOffsetsToTxnRequest_v2(Request):
44
+ API_KEY = 25
45
+ API_VERSION = 2
46
+ SCHEMA = AddOffsetsToTxnRequest_v1.SCHEMA
47
+
48
+
49
+ AddOffsetsToTxnRequest = [
50
+ AddOffsetsToTxnRequest_v0, AddOffsetsToTxnRequest_v1, AddOffsetsToTxnRequest_v2,
51
+ ]
52
+ AddOffsetsToTxnResponse = [
53
+ AddOffsetsToTxnResponse_v0, AddOffsetsToTxnResponse_v1, AddOffsetsToTxnResponse_v2,
54
+ ]
@@ -0,0 +1,71 @@
1
+ from .api import Request, Response
2
+ from .types import Array, Int16, Int32, Int64, Schema, String
3
+
4
+
5
+ class AddPartitionsToTxnResponse_v0(Response):
6
+ API_KEY = 24
7
+ API_VERSION = 0
8
+ SCHEMA = Schema(
9
+ ('throttle_time_ms', Int32),
10
+ ('results_by_topic_v3_and_below', Array(
11
+ ('name', String('utf-8')),
12
+ ('results_by_partition', Array(
13
+ ('partition_index', Int32),
14
+ ('partition_error_code', Int16))))))
15
+ ALIASES = {
16
+ 'results': 'results_by_topic_v3_and_below',
17
+ }
18
+
19
+
20
+ class AddPartitionsToTxnResponse_v1(Response):
21
+ API_KEY = 24
22
+ API_VERSION = 1
23
+ SCHEMA = AddPartitionsToTxnResponse_v0.SCHEMA
24
+ ALIASES = AddPartitionsToTxnResponse_v0.ALIASES
25
+
26
+
27
+ class AddPartitionsToTxnResponse_v2(Response):
28
+ API_KEY = 24
29
+ API_VERSION = 2
30
+ SCHEMA = AddPartitionsToTxnResponse_v1.SCHEMA
31
+ ALIASES = AddPartitionsToTxnResponse_v1.ALIASES
32
+
33
+
34
+ class AddPartitionsToTxnRequest_v0(Request):
35
+ API_KEY = 24
36
+ API_VERSION = 0
37
+ SCHEMA = Schema(
38
+ ('v3_and_below_transactional_id', String('utf-8')),
39
+ ('v3_and_below_producer_id', Int64),
40
+ ('v3_and_below_producer_epoch', Int16),
41
+ ('v3_and_below_topics', Array(
42
+ ('name', String('utf-8')),
43
+ ('partitions', Array(Int32)))))
44
+ ALIASES = {
45
+ 'transactional_id': 'v3_and_below_transactional_id',
46
+ 'producer_id': 'v3_and_below_producer_id',
47
+ 'producer_epoch': 'v3_and_below_producer_epoch',
48
+ 'topics': 'v3_and_below_topics',
49
+ }
50
+
51
+
52
+ class AddPartitionsToTxnRequest_v1(Request):
53
+ API_KEY = 24
54
+ API_VERSION = 1
55
+ SCHEMA = AddPartitionsToTxnRequest_v0.SCHEMA
56
+ ALIASES = AddPartitionsToTxnRequest_v0.ALIASES
57
+
58
+
59
+ class AddPartitionsToTxnRequest_v2(Request):
60
+ API_KEY = 24
61
+ API_VERSION = 2
62
+ SCHEMA = AddPartitionsToTxnRequest_v1.SCHEMA
63
+ ALIASES = AddPartitionsToTxnRequest_v1.ALIASES
64
+
65
+
66
+ AddPartitionsToTxnRequest = [
67
+ AddPartitionsToTxnRequest_v0, AddPartitionsToTxnRequest_v1, AddPartitionsToTxnRequest_v2,
68
+ ]
69
+ AddPartitionsToTxnResponse = [
70
+ AddPartitionsToTxnResponse_v0, AddPartitionsToTxnResponse_v1, AddPartitionsToTxnResponse_v2,
71
+ ]