kafka-python 3.0.10__tar.gz → 3.0.12__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-3.0.10 → kafka_python-3.0.12}/CHANGES.md +15 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/PKG-INFO +1 -1
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/admin/_partitions.py +0 -1
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/assignors/sticky/sticky_assignor.py +5 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/sasl/gssapi.py +3 -10
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/sasl/msk.py +6 -10
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/producer/future.py +2 -2
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/producer/sender.py +2 -2
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/consumer/offsets.py +5 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/serializer/json.py +2 -2
- kafka_python-3.0.12/kafka/version.py +1 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka_python.egg-info/PKG-INFO +1 -1
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka_python.egg-info/SOURCES.txt +1 -0
- kafka_python-3.0.12/test/test_serializer.py +47 -0
- kafka_python-3.0.10/kafka/version.py +0 -1
- {kafka_python-3.0.10 → kafka_python-3.0.12}/AUTHORS.md +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/LICENSE +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/MANIFEST.in +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/README.rst +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/__main__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/admin/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/admin/__main__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/admin/_acls.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/admin/_cluster.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/admin/_configs.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/admin/_groups.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/admin/_topics.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/admin/_transactions.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/admin/_users.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/admin/client.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/benchmarks/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/benchmarks/consumer_performance.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/benchmarks/load_example.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/benchmarks/producer_encode_path.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/benchmarks/producer_performance.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/benchmarks/profile_protocol.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/benchmarks/protocol_old_vs_new.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/benchmarks/record_batch_compose.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/benchmarks/record_batch_read.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/benchmarks/varint_speed.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/acls/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/acls/common.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/acls/create.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/acls/delete.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/acls/describe.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/cluster/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/cluster/describe.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/cluster/describe_quorum.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/cluster/features.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/cluster/log_dirs.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/cluster/versions.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/configs/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/configs/alter.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/configs/common.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/configs/describe.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/configs/list.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/configs/reset.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/groups/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/groups/alter_offsets.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/groups/delete.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/groups/delete_offsets.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/groups/describe.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/groups/list.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/groups/list_offsets.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/groups/remove_members.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/groups/reset_offsets.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/partitions/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/partitions/alter_reassignments.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/partitions/create.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/partitions/delete_records.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/partitions/describe.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/partitions/elect_leaders.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/partitions/list_offsets.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/partitions/list_reassignments.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/topics/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/topics/create.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/topics/delete.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/topics/describe.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/topics/list.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/transactions/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/transactions/abort.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/transactions/describe.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/transactions/describe_producers.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/transactions/find_hanging.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/transactions/list.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/users/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/users/alter_user_scram_credentials.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/users/describe_user_scram_credentials.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/common.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/consumer/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/producer/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cluster.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/codec.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/consumer/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/consumer/__main__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/consumer/fetcher.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/consumer/group.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/consumer/subscription_state.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/assignors/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/assignors/abstract.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/assignors/cooperative_sticky.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/assignors/range.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/assignors/roundrobin.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/assignors/sticky/StickyAssignorUserData.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/assignors/sticky/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/assignors/sticky/partition_movements.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/assignors/sticky/sorted_set.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/assignors/sticky/user_data.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/base.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/consumer.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/heartbeat.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/subscription.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/errors.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/future.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/compound_stat.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/dict_reporter.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/kafka_metric.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/measurable.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/measurable_stat.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/metric_config.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/metric_name.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/metrics.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/metrics_reporter.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/quota.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/stat.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/stats/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/stats/avg.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/stats/count.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/stats/histogram.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/stats/max_stat.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/stats/min_stat.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/stats/percentile.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/stats/percentiles.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/stats/rate.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/stats/sampled_stat.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/stats/sensor.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/metrics/stats/total.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/compat.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/connection.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/http_connect.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/inet.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/manager.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/metrics.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/sasl/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/sasl/abc.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/sasl/oauth.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/sasl/plain.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/sasl/scram.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/sasl/sspi.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/selector.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/socks5.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/transport.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/net/wakeup_notifier.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/partitioner/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/partitioner/abc.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/partitioner/default.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/partitioner/sticky.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/producer/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/producer/__main__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/producer/kafka.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/producer/producer_batch.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/producer/record_accumulator.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/producer/transaction_manager.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/acl.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/acl.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/client_quotas.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/client_quotas.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/cluster.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/cluster.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/configs.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/configs.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/groups.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/groups.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/topics.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/topics.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/transactions.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/transactions.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/users.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/admin/users.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/api_data.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/api_header.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/api_key.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/api_message.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/broker_version_data.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/consumer/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/consumer/fetch.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/consumer/fetch.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/consumer/group.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/consumer/group.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/consumer/metadata.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/consumer/metadata.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/consumer/offsets.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/data_container.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/frame.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/generate_stubs.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/metadata/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/metadata/api_versions.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/metadata/api_versions.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/metadata/find_coordinator.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/metadata/find_coordinator.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/metadata/metadata.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/metadata/metadata.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/abstract.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/add_offsets_to_txn.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/add_partitions_to_txn.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/admin.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/api.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/api_versions.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/commit.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/consumer_protocol.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/end_txn.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/fetch.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/find_coordinator.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/group.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/init_producer_id.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/list_offsets.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/metadata.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/offset_for_leader_epoch.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/produce.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/sasl_authenticate.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/sasl_handshake.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/struct.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/txn_offset_commit.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/old/types.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/parser.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/producer/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/producer/produce.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/producer/produce.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/producer/transaction.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/producer/transaction.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/sasl.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/sasl.pyi +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/fields/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/fields/array.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/fields/base.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/fields/codecs/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/fields/codecs/encode_buffer.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/fields/codecs/tagged_fields.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/fields/codecs/types.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/fields/codegen.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/fields/simple.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/fields/struct.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/fields/struct_array.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/load_json.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/AddOffsetsToTxnRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/AddOffsetsToTxnResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/AddPartitionsToTxnRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/AddPartitionsToTxnResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/AlterClientQuotasRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/AlterClientQuotasResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/AlterConfigsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/AlterConfigsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/AlterPartitionReassignmentsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/AlterPartitionReassignmentsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/AlterReplicaLogDirsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/AlterReplicaLogDirsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/AlterUserScramCredentialsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/AlterUserScramCredentialsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ApiVersionsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ApiVersionsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ConsumerProtocolAssignment.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ConsumerProtocolSubscription.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/CreateAclsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/CreateAclsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/CreatePartitionsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/CreatePartitionsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/CreateTopicsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/CreateTopicsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DeleteAclsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DeleteAclsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DeleteGroupsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DeleteGroupsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DeleteRecordsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DeleteRecordsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DeleteTopicsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DeleteTopicsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeAclsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeAclsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeClientQuotasRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeClientQuotasResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeClusterRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeClusterResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeConfigsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeConfigsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeGroupsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeGroupsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeLogDirsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeLogDirsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeProducersRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeProducersResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeQuorumRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeQuorumResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeTopicPartitionsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeTopicPartitionsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeTransactionsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeTransactionsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeUserScramCredentialsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/DescribeUserScramCredentialsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ElectLeadersRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ElectLeadersResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/EndTxnRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/EndTxnResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/FetchRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/FetchResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/FindCoordinatorRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/FindCoordinatorResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/HeartbeatRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/HeartbeatResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/IncrementalAlterConfigsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/IncrementalAlterConfigsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/InitProducerIdRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/InitProducerIdResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/JoinGroupRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/JoinGroupResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/LeaveGroupRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/LeaveGroupResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ListConfigResourcesRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ListConfigResourcesResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ListGroupsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ListGroupsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ListOffsetsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ListOffsetsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ListPartitionReassignmentsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ListPartitionReassignmentsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ListTransactionsRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ListTransactionsResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/MetadataRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/MetadataResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/OffsetCommitRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/OffsetCommitResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/OffsetDeleteRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/OffsetDeleteResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/OffsetFetchRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/OffsetFetchResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/OffsetForLeaderEpochRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/OffsetForLeaderEpochResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ProduceRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ProduceResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/RequestHeader.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/ResponseHeader.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/SaslAuthenticateRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/SaslAuthenticateResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/SaslHandshakeRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/SaslHandshakeResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/SyncGroupRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/SyncGroupResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/TxnOffsetCommitRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/TxnOffsetCommitResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/UpdateFeaturesRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/UpdateFeaturesResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/WriteTxnMarkersRequest.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/WriteTxnMarkersResponse.json +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/protocol/schemas/resources/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/record/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/record/_crc32c.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/record/abc.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/record/default_records.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/record/legacy_records.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/record/memory_records.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/record/util.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/serializer/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/serializer/abstract.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/serializer/default.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/serializer/wrapper.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/structs.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/util.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/vendor/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka_python.egg-info/dependency_links.txt +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka_python.egg-info/entry_points.txt +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka_python.egg-info/requires.txt +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/kafka_python.egg-info/top_level.txt +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/pyproject.toml +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/setup.cfg +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/integration/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/integration/conftest.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/integration/fixtures.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/integration/test_admin_integration.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/integration/test_consumer_integration.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/integration/test_producer_integration.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/integration/test_sasl_integration.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/integration/test_ssl_integration.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/net/__init__.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/net/test_compat.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/net/test_connection.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/net/test_http_connect.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/net/test_inet.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/net/test_manager.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/net/test_sasl_reauthentication.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/net/test_selector.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/net/test_transport.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/net/test_wakeup_notifier.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/test_cluster.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/test_codec.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/test_future.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/test_metrics.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/test_mock_broker.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/test_package.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/test_util.py +0 -0
- {kafka_python-3.0.10 → kafka_python-3.0.12}/test/testutil.py +0 -0
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
# 3.0.12 (Oct 26, 2026)
|
|
2
|
+
|
|
3
|
+
### Fixes
|
|
4
|
+
* Fix StickyPartitionAssignor infinite loop with mixed subscriptions (#3164)
|
|
5
|
+
* ListOffsetsRequest default `replica_id=-1` (#3174)
|
|
6
|
+
* Fix pending producer future get timeout fallthrough (#3169)
|
|
7
|
+
* Fix producer flush hangs when undrained batches expire (#3165)
|
|
8
|
+
* Import botocore and gssapi lazily in SASL mechanisms (#3171)
|
|
9
|
+
* Replace deprecated datetime.utcnow() in AWS MSK IAM client (#3156)
|
|
10
|
+
|
|
11
|
+
# 3.0.11 (Aug 16, 2026)
|
|
12
|
+
|
|
13
|
+
### Fixes
|
|
14
|
+
* Fix JsonSerializer returning None and raising TypeError on deserialize (#3150)
|
|
15
|
+
|
|
1
16
|
# 3.0.10 (Aug 4, 2026)
|
|
2
17
|
|
|
3
18
|
### Fixes
|
|
@@ -490,7 +490,6 @@ class PartitionAdminMixin:
|
|
|
490
490
|
topic2partitions[tp.topic].append(
|
|
491
491
|
_Partition(partition_index=tp.partition, timestamp=ts))
|
|
492
492
|
return ListOffsetsRequest(
|
|
493
|
-
replica_id=-1,
|
|
494
493
|
isolation_level=isolation_level_int,
|
|
495
494
|
topics=[_Topic(name=name, partitions=parts)
|
|
496
495
|
for name, parts in topic2partitions.items()],
|
{kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/assignors/sticky/sticky_assignor.py
RENAMED
|
@@ -450,6 +450,11 @@ class StickyAssignmentExecutor:
|
|
|
450
450
|
consumer = self.current_partition_consumer[partition]
|
|
451
451
|
# find the correct partition movement considering the stickiness requirement
|
|
452
452
|
partition_to_be_moved = self.partition_movements.get_partition_to_be_moved(partition, consumer, new_consumer)
|
|
453
|
+
substitute_owner = self.current_partition_consumer[partition_to_be_moved]
|
|
454
|
+
if substitute_owner != consumer:
|
|
455
|
+
# partition and the substitute both moved earlier in this rebalance;
|
|
456
|
+
# undo both moves, otherwise consumer stays overloaded forever
|
|
457
|
+
self._move_partition(partition, substitute_owner)
|
|
453
458
|
self._move_partition(partition_to_be_moved, new_consumer)
|
|
454
459
|
|
|
455
460
|
def _move_partition(self, partition, new_consumer):
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
import struct
|
|
2
2
|
|
|
3
|
-
# needed for SASL_GSSAPI authentication:
|
|
4
|
-
try:
|
|
5
|
-
import gssapi
|
|
6
|
-
from gssapi.raw.misc import GSSError
|
|
7
|
-
except (ImportError, OSError):
|
|
8
|
-
#no gssapi available, will disable gssapi mechanism
|
|
9
|
-
gssapi = None
|
|
10
|
-
GSSError = None
|
|
11
|
-
|
|
12
3
|
from .abc import SaslMechanism
|
|
13
4
|
|
|
14
5
|
|
|
@@ -21,7 +12,9 @@ class SaslMechanismGSSAPI(SaslMechanism):
|
|
|
21
12
|
SASL_QOP_AUTH_CONF = 4
|
|
22
13
|
|
|
23
14
|
def __init__(self, **config):
|
|
24
|
-
|
|
15
|
+
try:
|
|
16
|
+
import gssapi
|
|
17
|
+
except (ImportError, OSError):
|
|
25
18
|
raise RuntimeError('GSSAPI lib not found!')
|
|
26
19
|
if 'sasl_kerberos_name' not in config and 'sasl_kerberos_service_name' not in config:
|
|
27
20
|
raise ValueError('sasl_kerberos_service_name or sasl_kerberos_name required for GSSAPI sasl configuration')
|
|
@@ -6,13 +6,6 @@ import logging
|
|
|
6
6
|
import string
|
|
7
7
|
import urllib
|
|
8
8
|
|
|
9
|
-
# needed for AWS_MSK_IAM authentication:
|
|
10
|
-
try:
|
|
11
|
-
from botocore.session import Session as BotoSession
|
|
12
|
-
except ImportError:
|
|
13
|
-
# no botocore available, will disable AWS_MSK_IAM mechanism
|
|
14
|
-
BotoSession = None
|
|
15
|
-
|
|
16
9
|
from .abc import SaslMechanism
|
|
17
10
|
from kafka.errors import KafkaConfigurationError
|
|
18
11
|
|
|
@@ -22,8 +15,11 @@ log = logging.getLogger(__name__)
|
|
|
22
15
|
|
|
23
16
|
class SaslMechanismAwsMskIam(SaslMechanism):
|
|
24
17
|
def __init__(self, **config):
|
|
25
|
-
|
|
18
|
+
try:
|
|
19
|
+
from botocore.session import Session as BotoSession
|
|
20
|
+
except ImportError:
|
|
26
21
|
raise RuntimeError('AWS_MSK_IAM requires the "botocore" package')
|
|
22
|
+
self._boto_session_cls = BotoSession
|
|
27
23
|
if config.get('security_protocol', '') != 'SASL_SSL':
|
|
28
24
|
raise KafkaConfigurationError('AWS_MSK_IAM requires SASL_SSL')
|
|
29
25
|
if 'host' not in config:
|
|
@@ -34,7 +30,7 @@ class SaslMechanismAwsMskIam(SaslMechanism):
|
|
|
34
30
|
self._is_authenticated = False
|
|
35
31
|
|
|
36
32
|
def _build_client(self):
|
|
37
|
-
session =
|
|
33
|
+
session = self._boto_session_cls()
|
|
38
34
|
credentials = session.get_credentials().get_frozen_credentials()
|
|
39
35
|
if not session.get_config_variable('region'):
|
|
40
36
|
raise KafkaConfigurationError('Unable to determine region for AWS MSK cluster. Is AWS_DEFAULT_REGION set?')
|
|
@@ -92,7 +88,7 @@ class AwsMskIamClient:
|
|
|
92
88
|
self.service = 'kafka-cluster'
|
|
93
89
|
self.action = '{}:Connect'.format(self.service)
|
|
94
90
|
|
|
95
|
-
now = datetime.datetime.
|
|
91
|
+
now = datetime.datetime.now(datetime.timezone.utc)
|
|
96
92
|
self.datestamp = now.strftime('%Y%m%d')
|
|
97
93
|
self.timestamp = now.strftime('%Y%m%dT%H%M%SZ')
|
|
98
94
|
|
|
@@ -100,8 +100,8 @@ class FutureRecordMetadata(Future):
|
|
|
100
100
|
# multiple times, so each rebind wakes us and we re-wait on the
|
|
101
101
|
# (possibly new) _produce_future.
|
|
102
102
|
timer = Timer(timeout * 1000 if timeout is not None else None)
|
|
103
|
-
while not self.is_done
|
|
104
|
-
if not self._produce_future.wait(timer.timeout_secs):
|
|
103
|
+
while not self.is_done:
|
|
104
|
+
if timer.expired or not self._produce_future.wait(timer.timeout_secs):
|
|
105
105
|
raise Errors.KafkaTimeoutError(
|
|
106
106
|
"Timeout after waiting for %s secs." % (timeout,))
|
|
107
107
|
if self.failed():
|
|
@@ -457,7 +457,7 @@ class Sender(threading.Thread):
|
|
|
457
457
|
self._transaction_manager.update_last_acked_offset(
|
|
458
458
|
batch.topic_partition, base_offset, batch.record_count)
|
|
459
459
|
if self.config['guarantee_message_order']:
|
|
460
|
-
self._accumulator.muted.
|
|
460
|
+
self._accumulator.muted.discard(batch.topic_partition)
|
|
461
461
|
return
|
|
462
462
|
|
|
463
463
|
# Error path: construct the exception with context-specific wrappers
|
|
@@ -585,7 +585,7 @@ class Sender(threading.Thread):
|
|
|
585
585
|
if issubclass(error_cls, Errors.InvalidMetadataError):
|
|
586
586
|
self._metadata.request_update()
|
|
587
587
|
if self.config['guarantee_message_order']:
|
|
588
|
-
self._accumulator.muted.
|
|
588
|
+
self._accumulator.muted.discard(batch.topic_partition)
|
|
589
589
|
|
|
590
590
|
def _record_retries(self, batch):
|
|
591
591
|
if self._sensors:
|
|
@@ -41,6 +41,11 @@ class OffsetTimestamp(int):
|
|
|
41
41
|
|
|
42
42
|
|
|
43
43
|
class ListOffsetsRequest(ApiMessage):
|
|
44
|
+
@classmethod
|
|
45
|
+
def json_patch(cls, json):
|
|
46
|
+
json['fields'][0]['default'] = -1
|
|
47
|
+
return json
|
|
48
|
+
|
|
44
49
|
@classmethod
|
|
45
50
|
def min_version_for_timestamp(cls, ts):
|
|
46
51
|
ts = OffsetSpec(ts)
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import json
|
|
2
2
|
|
|
3
|
-
from .
|
|
3
|
+
from .default import DefaultSerializer
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
class JsonSerializer(
|
|
6
|
+
class JsonSerializer(DefaultSerializer):
|
|
7
7
|
def serialize(self, topic, headers, data):
|
|
8
8
|
if data is None:
|
|
9
9
|
return None
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '3.0.12'
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# pylint: skip-file
|
|
2
|
+
|
|
3
|
+
import pytest
|
|
4
|
+
|
|
5
|
+
from kafka.serializer import DefaultSerializer, JsonSerializer
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@pytest.mark.parametrize('encoding', ['utf-8', 'utf-16'])
|
|
9
|
+
def test_default_serializer_roundtrip(encoding):
|
|
10
|
+
ser = DefaultSerializer(encoding)
|
|
11
|
+
data = 'h\u00e9llo w\u00f6rld'
|
|
12
|
+
encoded = ser.serialize('topic', [], data)
|
|
13
|
+
assert isinstance(encoded, bytes)
|
|
14
|
+
assert ser.deserialize('topic', [], encoded) == data
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@pytest.mark.parametrize('data', [b'raw', bytearray(b'raw'), memoryview(b'raw'), None])
|
|
18
|
+
def test_default_serializer_passthrough_bytes_like(data):
|
|
19
|
+
assert DefaultSerializer().serialize('topic', [], data) == data
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def test_default_serializer_deserialize_none():
|
|
23
|
+
assert DefaultSerializer().deserialize('topic', [], None) is None
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def test_default_serializer_rejects_non_bytes_str():
|
|
27
|
+
with pytest.raises(AttributeError):
|
|
28
|
+
DefaultSerializer().serialize('topic', [], 42)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def test_json_serializer_roundtrip():
|
|
32
|
+
ser = JsonSerializer()
|
|
33
|
+
data = {'key': 'value', 'n': 42, 'lst': [1, 2]}
|
|
34
|
+
encoded = ser.serialize('topic', [], data)
|
|
35
|
+
assert isinstance(encoded, bytes)
|
|
36
|
+
assert ser.deserialize('topic', [], encoded) == data
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def test_json_serializer_none():
|
|
40
|
+
ser = JsonSerializer()
|
|
41
|
+
assert ser.serialize('topic', [], None) is None
|
|
42
|
+
assert ser.deserialize('topic', [], None) is None
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def test_json_serializer_deserializes_plain_json():
|
|
46
|
+
ser = JsonSerializer()
|
|
47
|
+
assert ser.deserialize('topic', [], b'{"a": 1}') == {'a': 1}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '3.0.10'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/partitions/alter_reassignments.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/partitions/list_reassignments.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/transactions/describe_producers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/users/alter_user_scram_credentials.py
RENAMED
|
File without changes
|
{kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/cli/admin/users/describe_user_scram_credentials.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/assignors/cooperative_sticky.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kafka_python-3.0.10 → kafka_python-3.0.12}/kafka/coordinator/assignors/sticky/sorted_set.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|