kafka-python 2.2.18__tar.gz → 2.3.0__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.
- {kafka_python-2.2.18 → kafka_python-2.3.0}/CHANGES.md +32 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/PKG-INFO +1 -1
- kafka_python-2.3.0/kafka/__main__.py +5 -0
- kafka_python-2.3.0/kafka/admin/__main__.py +7 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/admin/acl_resource.py +12 -2
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/admin/client.py +230 -361
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/admin/config_resource.py +6 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/admin/new_topic.py +2 -7
- kafka_python-2.3.0/kafka/cli/admin/__init__.py +145 -0
- kafka_python-2.3.0/kafka/cli/admin/cluster/__init__.py +16 -0
- kafka_python-2.3.0/kafka/cli/admin/cluster/describe.py +9 -0
- kafka_python-2.3.0/kafka/cli/admin/configs/__init__.py +16 -0
- kafka_python-2.3.0/kafka/cli/admin/configs/describe.py +24 -0
- kafka_python-2.3.0/kafka/cli/admin/consumer_groups/__init__.py +19 -0
- kafka_python-2.3.0/kafka/cli/admin/consumer_groups/delete.py +10 -0
- kafka_python-2.3.0/kafka/cli/admin/consumer_groups/describe.py +10 -0
- kafka_python-2.3.0/kafka/cli/admin/consumer_groups/list.py +9 -0
- kafka_python-2.3.0/kafka/cli/admin/consumer_groups/list_offsets.py +10 -0
- kafka_python-2.3.0/kafka/cli/admin/log_dirs/__init__.py +16 -0
- kafka_python-2.3.0/kafka/cli/admin/log_dirs/describe.py +9 -0
- kafka_python-2.3.0/kafka/cli/admin/topics/__init__.py +19 -0
- kafka_python-2.3.0/kafka/cli/admin/topics/create.py +18 -0
- kafka_python-2.3.0/kafka/cli/admin/topics/delete.py +10 -0
- kafka_python-2.3.0/kafka/cli/admin/topics/describe.py +10 -0
- kafka_python-2.3.0/kafka/cli/admin/topics/list.py +9 -0
- kafka_python-2.3.0/kafka/cli/consumer/__init__.py +89 -0
- kafka_python-2.3.0/kafka/cli/producer/__init__.py +91 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/client_async.py +5 -3
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/cluster.py +3 -1
- kafka_python-2.3.0/kafka/consumer/__main__.py +7 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/consumer/fetcher.py +8 -5
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/consumer/group.py +25 -1
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/coordinator/assignors/abstract.py +3 -2
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/coordinator/assignors/range.py +16 -11
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/coordinator/assignors/roundrobin.py +15 -10
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/coordinator/assignors/sticky/sticky_assignor.py +9 -8
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/coordinator/base.py +127 -44
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/coordinator/consumer.py +50 -10
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/coordinator/protocol.py +9 -7
- kafka_python-2.3.0/kafka/coordinator/subscription.py +37 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/errors.py +7 -0
- kafka_python-2.3.0/kafka/producer/__main__.py +7 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/producer/future.py +19 -16
- kafka_python-2.3.0/kafka/producer/producer_batch.py +185 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/producer/record_accumulator.py +1 -151
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/producer/sender.py +79 -35
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/producer/transaction_manager.py +4 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/admin.py +4 -4
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/commit.py +31 -8
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/group.py +130 -8
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/metadata.py +47 -3
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/parser.py +1 -1
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/produce.py +2 -2
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/struct.py +6 -7
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/types.py +31 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/util.py +1 -0
- kafka_python-2.3.0/kafka/version.py +1 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka_python.egg-info/PKG-INFO +1 -1
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka_python.egg-info/SOURCES.txt +27 -1
- kafka_python-2.3.0/test/integration/__init__.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/integration/test_admin_integration.py +2 -5
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_admin.py +22 -6
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_assignors.py +47 -46
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_coordinator.py +18 -16
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_object_conversion.py +2 -3
- kafka_python-2.3.0/test/test_producer_batch.py +151 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_protocol.py +11 -1
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_record_accumulator.py +1 -117
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_sender.py +43 -26
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_util.py +1 -0
- kafka_python-2.2.18/kafka/protocol/pickle.py +0 -35
- kafka_python-2.2.18/kafka/version.py +0 -1
- {kafka_python-2.2.18 → kafka_python-2.3.0}/AUTHORS.md +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/LICENSE +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/MANIFEST.in +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/README.rst +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/__init__.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/admin/__init__.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/admin/new_partitions.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/benchmarks/__init__.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/benchmarks/consumer_performance.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/benchmarks/load_example.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/benchmarks/producer_performance.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/benchmarks/record_batch_compose.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/benchmarks/record_batch_read.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/benchmarks/varint_speed.py +0 -0
- {kafka_python-2.2.18/kafka/coordinator → kafka_python-2.3.0/kafka/cli}/__init__.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/codec.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/conn.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/consumer/__init__.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/consumer/subscription_state.py +0 -0
- {kafka_python-2.2.18/kafka/coordinator/assignors → kafka_python-2.3.0/kafka/coordinator}/__init__.py +0 -0
- {kafka_python-2.2.18/kafka/coordinator/assignors/sticky → kafka_python-2.3.0/kafka/coordinator/assignors}/__init__.py +0 -0
- {kafka_python-2.2.18/kafka/vendor → kafka_python-2.3.0/kafka/coordinator/assignors/sticky}/__init__.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/coordinator/assignors/sticky/partition_movements.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/coordinator/assignors/sticky/sorted_set.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/coordinator/heartbeat.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/future.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/__init__.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/compound_stat.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/dict_reporter.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/kafka_metric.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/measurable.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/measurable_stat.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/metric_config.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/metric_name.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/metrics.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/metrics_reporter.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/quota.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/stat.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/stats/__init__.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/stats/avg.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/stats/count.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/stats/histogram.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/stats/max_stat.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/stats/min_stat.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/stats/percentile.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/stats/percentiles.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/stats/rate.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/stats/sampled_stat.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/stats/sensor.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/metrics/stats/total.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/partitioner/__init__.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/partitioner/default.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/producer/__init__.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/producer/kafka.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/__init__.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/abstract.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/add_offsets_to_txn.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/add_partitions_to_txn.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/api.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/api_versions.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/broker_api_versions.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/end_txn.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/fetch.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/find_coordinator.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/frame.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/init_producer_id.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/list_offsets.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/message.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/offset_for_leader_epoch.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/sasl_authenticate.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/sasl_handshake.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/protocol/txn_offset_commit.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/record/__init__.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/record/_crc32c.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/record/abc.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/record/default_records.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/record/legacy_records.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/record/memory_records.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/record/util.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/sasl/__init__.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/sasl/abc.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/sasl/gssapi.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/sasl/msk.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/sasl/oauth.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/sasl/plain.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/sasl/scram.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/sasl/sspi.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/serializer/__init__.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/serializer/abstract.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/socks5_wrapper.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/structs.py +0 -0
- {kafka_python-2.2.18/test/integration → kafka_python-2.3.0/kafka/vendor}/__init__.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/vendor/enum34.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/vendor/selectors34.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/vendor/six.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka/vendor/socketpair.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka_python.egg-info/dependency_links.txt +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka_python.egg-info/requires.txt +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/kafka_python.egg-info/top_level.txt +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/pyproject.toml +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/setup.cfg +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/setup.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/integration/conftest.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/integration/fixtures.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/integration/test_consumer_group.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/integration/test_consumer_integration.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/integration/test_producer_integration.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/integration/test_sasl_integration.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_acl_comparisons.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_api_object_implementation.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_client_async.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_cluster.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_codec.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_conn.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_consumer.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_fetcher.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_metrics.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_package.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_partition_movements.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_partitioner.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_producer.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/test_subscription_state.py +0 -0
- {kafka_python-2.2.18 → kafka_python-2.3.0}/test/testutil.py +0 -0
|
@@ -1,3 +1,35 @@
|
|
|
1
|
+
# 2.3.0 (Nov 20, 2025)
|
|
2
|
+
|
|
3
|
+
CLI
|
|
4
|
+
* python -m cli interfaces for kafka.admin, kafka.consumer, kafka.producer (#2650)
|
|
5
|
+
|
|
6
|
+
Producer
|
|
7
|
+
* KIP-654: Abort transaction with pending data with TransactionAbortedError (#2662)
|
|
8
|
+
* KafkaProducer: Handle UnknownProducerIdError (#2663)
|
|
9
|
+
* KIP-467: Augment ProduceResponse error messaging for specific culprit records (#2661)
|
|
10
|
+
|
|
11
|
+
Consumer
|
|
12
|
+
* KIP-345: Consumer group static membership (#2625)
|
|
13
|
+
* KIP-207: Add ListOffsetsRequest v5 / handle OffsetNotAvailableError (#2657)
|
|
14
|
+
* Fetcher: Add missing argument in debug log (#2665)
|
|
15
|
+
|
|
16
|
+
AdminClient
|
|
17
|
+
* KIP-430: Return Authorized Operations in Describe Responses (#2656)
|
|
18
|
+
* Add `send_request()` and `send_requests()` to KafkaAdminClient (#2649)
|
|
19
|
+
|
|
20
|
+
Maintenance
|
|
21
|
+
* Remove old/unused kafka.protocol.pickle (#2653)
|
|
22
|
+
* Switch protocol code to getattr/setattr from __dict__ (#2654)
|
|
23
|
+
* Drop unused imports (#2651)
|
|
24
|
+
|
|
25
|
+
Project Infra
|
|
26
|
+
* Bump github/codeql-action from 3 to 4 (#2678)
|
|
27
|
+
* Bump actions/setup-python from 5 to 6 (#2674)
|
|
28
|
+
* Bump actions/setup-java from 4 to 5 (#2673)
|
|
29
|
+
* Bump actions/checkout from 4 to 5 (#2669)
|
|
30
|
+
* Bump actions/checkout from 5 to 6 (#2694)
|
|
31
|
+
* NixOS helpers
|
|
32
|
+
|
|
1
33
|
# 2.2.18 (Nov 20, 2025)
|
|
2
34
|
|
|
3
35
|
Fixes
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
from __future__ import absolute_import
|
|
2
|
-
from kafka.errors import IllegalArgumentError
|
|
3
2
|
|
|
4
3
|
# enum in stdlib as of py3.4
|
|
5
4
|
try:
|
|
@@ -8,6 +7,8 @@ except ImportError:
|
|
|
8
7
|
# vendored backport module
|
|
9
8
|
from kafka.vendor.enum34 import IntEnum
|
|
10
9
|
|
|
10
|
+
from kafka.errors import IllegalArgumentError
|
|
11
|
+
|
|
11
12
|
|
|
12
13
|
class ResourceType(IntEnum):
|
|
13
14
|
"""Type of kafka resource to set ACL for
|
|
@@ -30,6 +31,7 @@ class ACLOperation(IntEnum):
|
|
|
30
31
|
The ANY value is only valid in a filter context
|
|
31
32
|
"""
|
|
32
33
|
|
|
34
|
+
UNKNOWN = 0,
|
|
33
35
|
ANY = 1,
|
|
34
36
|
ALL = 2,
|
|
35
37
|
READ = 3,
|
|
@@ -41,7 +43,9 @@ class ACLOperation(IntEnum):
|
|
|
41
43
|
CLUSTER_ACTION = 9,
|
|
42
44
|
DESCRIBE_CONFIGS = 10,
|
|
43
45
|
ALTER_CONFIGS = 11,
|
|
44
|
-
IDEMPOTENT_WRITE = 12
|
|
46
|
+
IDEMPOTENT_WRITE = 12,
|
|
47
|
+
CREATE_TOKENS = 13,
|
|
48
|
+
DESCRIBE_TOKENS = 13
|
|
45
49
|
|
|
46
50
|
|
|
47
51
|
class ACLPermissionType(IntEnum):
|
|
@@ -50,6 +54,7 @@ class ACLPermissionType(IntEnum):
|
|
|
50
54
|
The ANY value is only valid in a filter context
|
|
51
55
|
"""
|
|
52
56
|
|
|
57
|
+
UNKNOWN = 0,
|
|
53
58
|
ANY = 1,
|
|
54
59
|
DENY = 2,
|
|
55
60
|
ALLOW = 3
|
|
@@ -63,6 +68,7 @@ class ACLResourcePatternType(IntEnum):
|
|
|
63
68
|
https://cwiki.apache.org/confluence/display/KAFKA/KIP-290%3A+Support+for+Prefixed+ACLs
|
|
64
69
|
"""
|
|
65
70
|
|
|
71
|
+
UNKNOWN = 0,
|
|
66
72
|
ANY = 1,
|
|
67
73
|
MATCH = 2,
|
|
68
74
|
LITERAL = 3,
|
|
@@ -242,3 +248,7 @@ class ResourcePattern(ResourcePatternFilter):
|
|
|
242
248
|
raise IllegalArgumentError(
|
|
243
249
|
"pattern_type cannot be {} on a concrete ResourcePattern".format(self.pattern_type.name)
|
|
244
250
|
)
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
def valid_acl_operations(int_vals):
|
|
254
|
+
return set([ACLOperation(v) for v in int_vals if v not in (0, 1, 2)])
|