kafka-python 3.0.7__tar.gz → 3.0.9__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.7 → kafka_python-3.0.9}/CHANGES.md +10 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/PKG-INFO +1 -1
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/consumer/subscription_state.py +5 -2
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/manager.py +4 -24
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/transport.py +42 -5
- kafka_python-3.0.9/kafka/version.py +1 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka_python.egg-info/PKG-INFO +1 -1
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/net/test_transport.py +88 -1
- kafka_python-3.0.7/kafka/version.py +0 -1
- {kafka_python-3.0.7 → kafka_python-3.0.9}/AUTHORS.md +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/LICENSE +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/MANIFEST.in +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/README.rst +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/__main__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/admin/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/admin/__main__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/admin/_acls.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/admin/_cluster.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/admin/_configs.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/admin/_groups.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/admin/_partitions.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/admin/_topics.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/admin/_transactions.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/admin/_users.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/admin/client.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/benchmarks/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/benchmarks/consumer_performance.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/benchmarks/load_example.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/benchmarks/producer_encode_path.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/benchmarks/producer_performance.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/benchmarks/profile_protocol.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/benchmarks/protocol_old_vs_new.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/benchmarks/record_batch_compose.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/benchmarks/record_batch_read.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/benchmarks/varint_speed.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/acls/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/acls/common.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/acls/create.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/acls/delete.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/acls/describe.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/cluster/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/cluster/describe.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/cluster/describe_quorum.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/cluster/features.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/cluster/log_dirs.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/cluster/versions.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/configs/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/configs/alter.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/configs/common.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/configs/describe.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/configs/list.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/configs/reset.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/groups/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/groups/alter_offsets.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/groups/delete.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/groups/delete_offsets.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/groups/describe.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/groups/list.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/groups/list_offsets.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/groups/remove_members.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/groups/reset_offsets.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/partitions/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/partitions/alter_reassignments.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/partitions/create.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/partitions/delete_records.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/partitions/describe.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/partitions/elect_leaders.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/partitions/list_offsets.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/partitions/list_reassignments.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/topics/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/topics/create.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/topics/delete.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/topics/describe.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/topics/list.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/transactions/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/transactions/abort.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/transactions/describe.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/transactions/describe_producers.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/transactions/find_hanging.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/transactions/list.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/users/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/users/alter_user_scram_credentials.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/users/describe_user_scram_credentials.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/common.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/consumer/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/producer/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cluster.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/codec.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/consumer/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/consumer/__main__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/consumer/fetcher.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/consumer/group.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/assignors/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/assignors/abstract.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/assignors/cooperative_sticky.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/assignors/range.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/assignors/roundrobin.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/assignors/sticky/StickyAssignorUserData.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/assignors/sticky/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/assignors/sticky/partition_movements.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/assignors/sticky/sorted_set.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/assignors/sticky/sticky_assignor.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/assignors/sticky/user_data.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/base.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/consumer.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/heartbeat.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/subscription.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/errors.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/future.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/compound_stat.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/dict_reporter.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/kafka_metric.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/measurable.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/measurable_stat.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/metric_config.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/metric_name.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/metrics.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/metrics_reporter.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/quota.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/stat.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/stats/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/stats/avg.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/stats/count.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/stats/histogram.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/stats/max_stat.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/stats/min_stat.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/stats/percentile.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/stats/percentiles.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/stats/rate.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/stats/sampled_stat.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/stats/sensor.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/metrics/stats/total.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/compat.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/connection.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/http_connect.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/inet.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/metrics.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/sasl/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/sasl/abc.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/sasl/gssapi.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/sasl/msk.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/sasl/oauth.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/sasl/plain.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/sasl/scram.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/sasl/sspi.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/selector.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/socks5.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/net/wakeup_notifier.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/partitioner/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/partitioner/abc.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/partitioner/default.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/partitioner/sticky.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/producer/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/producer/__main__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/producer/future.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/producer/kafka.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/producer/producer_batch.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/producer/record_accumulator.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/producer/sender.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/producer/transaction_manager.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/acl.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/acl.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/client_quotas.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/client_quotas.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/cluster.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/cluster.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/configs.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/configs.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/groups.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/groups.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/topics.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/topics.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/transactions.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/transactions.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/users.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/admin/users.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/api_data.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/api_header.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/api_key.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/api_message.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/broker_version_data.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/consumer/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/consumer/fetch.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/consumer/fetch.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/consumer/group.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/consumer/group.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/consumer/metadata.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/consumer/metadata.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/consumer/offsets.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/consumer/offsets.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/data_container.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/frame.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/generate_stubs.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/metadata/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/metadata/api_versions.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/metadata/api_versions.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/metadata/find_coordinator.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/metadata/find_coordinator.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/metadata/metadata.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/metadata/metadata.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/abstract.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/add_offsets_to_txn.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/add_partitions_to_txn.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/admin.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/api.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/api_versions.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/commit.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/consumer_protocol.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/end_txn.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/fetch.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/find_coordinator.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/group.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/init_producer_id.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/list_offsets.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/metadata.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/offset_for_leader_epoch.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/produce.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/sasl_authenticate.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/sasl_handshake.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/struct.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/txn_offset_commit.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/old/types.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/parser.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/producer/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/producer/produce.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/producer/produce.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/producer/transaction.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/producer/transaction.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/sasl.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/sasl.pyi +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/fields/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/fields/array.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/fields/base.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/fields/codecs/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/fields/codecs/encode_buffer.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/fields/codecs/tagged_fields.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/fields/codecs/types.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/fields/codegen.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/fields/simple.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/fields/struct.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/fields/struct_array.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/load_json.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/AddOffsetsToTxnRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/AddOffsetsToTxnResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/AddPartitionsToTxnRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/AddPartitionsToTxnResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/AlterClientQuotasRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/AlterClientQuotasResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/AlterConfigsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/AlterConfigsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/AlterPartitionReassignmentsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/AlterPartitionReassignmentsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/AlterReplicaLogDirsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/AlterReplicaLogDirsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/AlterUserScramCredentialsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/AlterUserScramCredentialsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ApiVersionsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ApiVersionsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ConsumerProtocolAssignment.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ConsumerProtocolSubscription.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/CreateAclsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/CreateAclsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/CreatePartitionsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/CreatePartitionsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/CreateTopicsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/CreateTopicsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DeleteAclsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DeleteAclsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DeleteGroupsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DeleteGroupsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DeleteRecordsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DeleteRecordsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DeleteTopicsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DeleteTopicsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeAclsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeAclsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeClientQuotasRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeClientQuotasResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeClusterRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeClusterResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeConfigsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeConfigsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeGroupsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeGroupsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeLogDirsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeLogDirsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeProducersRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeProducersResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeQuorumRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeQuorumResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeTopicPartitionsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeTopicPartitionsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeTransactionsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeTransactionsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeUserScramCredentialsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/DescribeUserScramCredentialsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ElectLeadersRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ElectLeadersResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/EndTxnRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/EndTxnResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/FetchRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/FetchResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/FindCoordinatorRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/FindCoordinatorResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/HeartbeatRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/HeartbeatResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/IncrementalAlterConfigsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/IncrementalAlterConfigsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/InitProducerIdRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/InitProducerIdResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/JoinGroupRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/JoinGroupResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/LeaveGroupRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/LeaveGroupResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ListConfigResourcesRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ListConfigResourcesResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ListGroupsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ListGroupsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ListOffsetsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ListOffsetsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ListPartitionReassignmentsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ListPartitionReassignmentsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ListTransactionsRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ListTransactionsResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/MetadataRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/MetadataResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/OffsetCommitRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/OffsetCommitResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/OffsetDeleteRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/OffsetDeleteResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/OffsetFetchRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/OffsetFetchResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/OffsetForLeaderEpochRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/OffsetForLeaderEpochResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ProduceRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ProduceResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/RequestHeader.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/ResponseHeader.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/SaslAuthenticateRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/SaslAuthenticateResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/SaslHandshakeRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/SaslHandshakeResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/SyncGroupRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/SyncGroupResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/TxnOffsetCommitRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/TxnOffsetCommitResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/UpdateFeaturesRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/UpdateFeaturesResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/WriteTxnMarkersRequest.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/WriteTxnMarkersResponse.json +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/protocol/schemas/resources/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/record/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/record/_crc32c.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/record/abc.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/record/default_records.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/record/legacy_records.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/record/memory_records.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/record/util.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/serializer/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/serializer/abstract.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/serializer/default.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/serializer/json.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/serializer/wrapper.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/structs.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/util.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/vendor/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka_python.egg-info/SOURCES.txt +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka_python.egg-info/dependency_links.txt +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka_python.egg-info/entry_points.txt +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka_python.egg-info/requires.txt +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/kafka_python.egg-info/top_level.txt +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/pyproject.toml +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/setup.cfg +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/integration/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/integration/conftest.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/integration/fixtures.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/integration/test_admin_integration.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/integration/test_consumer_integration.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/integration/test_producer_integration.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/integration/test_sasl_integration.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/integration/test_ssl_integration.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/net/__init__.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/net/test_compat.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/net/test_connection.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/net/test_http_connect.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/net/test_inet.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/net/test_manager.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/net/test_sasl_reauthentication.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/net/test_selector.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/net/test_wakeup_notifier.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/test_cluster.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/test_codec.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/test_future.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/test_metrics.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/test_mock_broker.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/test_package.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/test_util.py +0 -0
- {kafka_python-3.0.7 → kafka_python-3.0.9}/test/testutil.py +0 -0
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
# 3.0.9 (Jul 21, 2026)
|
|
2
|
+
|
|
3
|
+
### Fixes
|
|
4
|
+
* Consumer: fix stuck partitions retained after rebalance with listener (#3132)
|
|
5
|
+
|
|
6
|
+
# 3.0.8 (Jul 9, 2026)
|
|
7
|
+
|
|
8
|
+
### Fixes
|
|
9
|
+
* transport: Fix TLS SNI when `ssl_check_hostname=False` (#3114)
|
|
10
|
+
|
|
1
11
|
# 3.0.7 (Jun 28, 2026)
|
|
2
12
|
|
|
3
13
|
### Fixes
|
|
@@ -290,6 +290,9 @@ class SubscriptionState:
|
|
|
290
290
|
for tp in list(self.assignment.keys()):
|
|
291
291
|
if tp not in new_set:
|
|
292
292
|
del self.assignment[tp]
|
|
293
|
+
else:
|
|
294
|
+
# Retained partitions are no longer pending_revocation
|
|
295
|
+
self.assignment[tp].mark_pending_revocation(False)
|
|
293
296
|
# Add new partitions; kept partitions retain their existing
|
|
294
297
|
# TopicPartitionState (positions, paused flag, KIP-392 cache,
|
|
295
298
|
# etc.).
|
|
@@ -651,12 +654,12 @@ class TopicPartitionState:
|
|
|
651
654
|
def resume(self):
|
|
652
655
|
self.paused = False
|
|
653
656
|
|
|
654
|
-
def mark_pending_revocation(self):
|
|
657
|
+
def mark_pending_revocation(self, val=True):
|
|
655
658
|
"""KIP-429: gate fetches while an on_partitions_revoked /
|
|
656
659
|
on_partitions_lost listener is in progress for this partition.
|
|
657
660
|
Single-shot: the surrounding ``assign_from_subscribed`` drops
|
|
658
661
|
the state object once the listener returns."""
|
|
659
|
-
self._pending_revocation =
|
|
662
|
+
self._pending_revocation = val
|
|
660
663
|
|
|
661
664
|
def is_fetchable(self):
|
|
662
665
|
return (not self.paused
|
|
@@ -3,7 +3,6 @@ import logging
|
|
|
3
3
|
import inspect
|
|
4
4
|
import random
|
|
5
5
|
import socket
|
|
6
|
-
import ssl
|
|
7
6
|
import time
|
|
8
7
|
|
|
9
8
|
from .inet import create_connection
|
|
@@ -205,35 +204,16 @@ class KafkaConnectionManager:
|
|
|
205
204
|
def ssl_enabled(self):
|
|
206
205
|
return self.config['security_protocol'] in ('SSL', 'SASL_SSL')
|
|
207
206
|
|
|
208
|
-
def _build_ssl_context(self):
|
|
209
|
-
if self.config['ssl_context'] is not None:
|
|
210
|
-
return self.config['ssl_context']
|
|
211
|
-
ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
|
|
212
|
-
ctx.minimum_version = ssl.TLSVersion.TLSv1_2
|
|
213
|
-
ctx.check_hostname = self.config['ssl_check_hostname']
|
|
214
|
-
if self.config['ssl_cafile']:
|
|
215
|
-
ctx.load_verify_locations(self.config['ssl_cafile'])
|
|
216
|
-
else:
|
|
217
|
-
ctx.load_default_certs()
|
|
218
|
-
if self.config['ssl_certfile']:
|
|
219
|
-
ctx.load_cert_chain(
|
|
220
|
-
certfile=self.config['ssl_certfile'],
|
|
221
|
-
keyfile=self.config['ssl_keyfile'],
|
|
222
|
-
password=self.config['ssl_password'],
|
|
223
|
-
)
|
|
224
|
-
if self.config['ssl_crlfile']:
|
|
225
|
-
ctx.load_verify_locations(crl=self.config['ssl_crlfile'])
|
|
226
|
-
ctx.verify_flags |= ssl.VERIFY_CRL_CHECK_LEAF
|
|
227
|
-
return ctx
|
|
228
|
-
|
|
229
207
|
async def _build_transport(self, node, timeout_at=None):
|
|
230
208
|
sock = await create_connection(self._net, node.host, node.port,
|
|
231
209
|
self.config['socket_options'],
|
|
232
210
|
proxy_url=self.config['proxy_url'],
|
|
233
211
|
timeout_at=timeout_at)
|
|
234
212
|
if self.ssl_enabled:
|
|
235
|
-
|
|
236
|
-
|
|
213
|
+
ssl_configs = {key: value
|
|
214
|
+
for key, value in self.config.items()
|
|
215
|
+
if key.startswith('ssl_')}
|
|
216
|
+
transport = KafkaSSLTransport(self._net, sock, host=node.host, **ssl_configs)
|
|
237
217
|
else:
|
|
238
218
|
transport = KafkaTCPTransport(self._net, sock, host=node.host)
|
|
239
219
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from collections import deque
|
|
2
|
+
import copy
|
|
2
3
|
import logging
|
|
3
4
|
import selectors
|
|
4
5
|
import socket
|
|
@@ -371,13 +372,49 @@ class KafkaTCPTransport:
|
|
|
371
372
|
|
|
372
373
|
|
|
373
374
|
class KafkaSSLTransport(KafkaTCPTransport):
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
375
|
+
DEFAULT_CONFIG = {
|
|
376
|
+
'ssl_context': None,
|
|
377
|
+
'ssl_check_hostname': True,
|
|
378
|
+
'ssl_cafile': None,
|
|
379
|
+
'ssl_certfile': None,
|
|
380
|
+
'ssl_keyfile': None,
|
|
381
|
+
'ssl_password': None,
|
|
382
|
+
'ssl_crlfile': None,
|
|
383
|
+
}
|
|
384
|
+
def __init__(self, net, sock, host=None, **configs):
|
|
385
|
+
self.ssl_config = copy.copy(self.DEFAULT_CONFIG)
|
|
386
|
+
for key in self.ssl_config:
|
|
387
|
+
if key in configs:
|
|
388
|
+
self.ssl_config[key] = configs[key]
|
|
389
|
+
self._ssl_context = self._build_ssl_context(self.ssl_config)
|
|
390
|
+
server_hostname = host.rstrip('.') if host is not None else None
|
|
391
|
+
sock = self._ssl_context.wrap_socket(
|
|
392
|
+
sock, server_hostname=server_hostname,
|
|
393
|
+
do_handshake_on_connect=False)
|
|
379
394
|
super().__init__(net, sock, host=host)
|
|
380
395
|
|
|
396
|
+
@staticmethod
|
|
397
|
+
def _build_ssl_context(config):
|
|
398
|
+
if config['ssl_context'] is not None:
|
|
399
|
+
return config['ssl_context']
|
|
400
|
+
ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
|
|
401
|
+
ctx.minimum_version = ssl.TLSVersion.TLSv1_2
|
|
402
|
+
ctx.check_hostname = config['ssl_check_hostname']
|
|
403
|
+
if config['ssl_cafile']:
|
|
404
|
+
ctx.load_verify_locations(config['ssl_cafile'])
|
|
405
|
+
else:
|
|
406
|
+
ctx.load_default_certs()
|
|
407
|
+
if config['ssl_certfile']:
|
|
408
|
+
ctx.load_cert_chain(
|
|
409
|
+
certfile=config['ssl_certfile'],
|
|
410
|
+
keyfile=config['ssl_keyfile'],
|
|
411
|
+
password=config['ssl_password'],
|
|
412
|
+
)
|
|
413
|
+
if config['ssl_crlfile']:
|
|
414
|
+
ctx.load_verify_locations(crl=config['ssl_crlfile'])
|
|
415
|
+
ctx.verify_flags |= ssl.VERIFY_CRL_CHECK_LEAF
|
|
416
|
+
return ctx
|
|
417
|
+
|
|
381
418
|
async def handshake(self):
|
|
382
419
|
while True:
|
|
383
420
|
try:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '3.0.9'
|
|
@@ -7,7 +7,7 @@ import pytest
|
|
|
7
7
|
import kafka.errors as Errors
|
|
8
8
|
from kafka.future import Future
|
|
9
9
|
from kafka.net.selector import NetworkSelector, TaskState
|
|
10
|
-
from kafka.net.transport import KafkaTCPTransport
|
|
10
|
+
from kafka.net.transport import KafkaSSLTransport, KafkaTCPTransport
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
@pytest.fixture
|
|
@@ -367,6 +367,93 @@ class TestKafkaTCPTransport:
|
|
|
367
367
|
assert 'closed' in s
|
|
368
368
|
|
|
369
369
|
|
|
370
|
+
class TestKafkaSSLTransport:
|
|
371
|
+
"""Regression tests for https://github.com/dpkp/kafka-python/issues/3113:
|
|
372
|
+
TLS SNI (server_hostname) must be sent regardless of ssl_check_hostname so
|
|
373
|
+
that SNI-routed clusters (nginx/Istio/Strimzi ingress) remain reachable when
|
|
374
|
+
hostname verification is disabled.
|
|
375
|
+
"""
|
|
376
|
+
|
|
377
|
+
def _make_ssl_sock(self):
|
|
378
|
+
# wrap_socket returns a wrapped socket; give it the peer/name accessors
|
|
379
|
+
# that KafkaTCPTransport.__init__ pokes at via str()/repr helpers.
|
|
380
|
+
wrapped = _make_mock_sock()
|
|
381
|
+
sock = _make_mock_sock()
|
|
382
|
+
ctx = MagicMock()
|
|
383
|
+
ctx.wrap_socket.return_value = wrapped
|
|
384
|
+
return sock, ctx, wrapped
|
|
385
|
+
|
|
386
|
+
def test_sni_sent_when_check_hostname_true(self, net):
|
|
387
|
+
sock, ctx, _ = self._make_ssl_sock()
|
|
388
|
+
KafkaSSLTransport(net, sock, host='broker.example.com',
|
|
389
|
+
ssl_context=ctx, ssl_check_hostname=True)
|
|
390
|
+
_, kwargs = ctx.wrap_socket.call_args
|
|
391
|
+
assert kwargs['server_hostname'] == 'broker.example.com'
|
|
392
|
+
|
|
393
|
+
def test_sni_sent_when_check_hostname_false(self, net):
|
|
394
|
+
# The bug: SNI used to be suppressed when verification was disabled.
|
|
395
|
+
sock, ctx, _ = self._make_ssl_sock()
|
|
396
|
+
KafkaSSLTransport(net, sock, host='broker.example.com',
|
|
397
|
+
ssl_context=ctx, ssl_check_hostname=False)
|
|
398
|
+
_, kwargs = ctx.wrap_socket.call_args
|
|
399
|
+
assert kwargs['server_hostname'] == 'broker.example.com'
|
|
400
|
+
|
|
401
|
+
def test_sni_strips_trailing_dot(self, net):
|
|
402
|
+
# A trailing dot is a valid FQDN but illegal in the SNI extension.
|
|
403
|
+
sock, ctx, _ = self._make_ssl_sock()
|
|
404
|
+
KafkaSSLTransport(net, sock, host='broker.example.com.',
|
|
405
|
+
ssl_context=ctx, ssl_check_hostname=False)
|
|
406
|
+
_, kwargs = ctx.wrap_socket.call_args
|
|
407
|
+
assert kwargs['server_hostname'] == 'broker.example.com'
|
|
408
|
+
|
|
409
|
+
def test_sni_none_when_host_missing(self, net):
|
|
410
|
+
sock, ctx, _ = self._make_ssl_sock()
|
|
411
|
+
KafkaSSLTransport(net, sock, host=None, ssl_context=ctx)
|
|
412
|
+
_, kwargs = ctx.wrap_socket.call_args
|
|
413
|
+
assert kwargs['server_hostname'] is None
|
|
414
|
+
|
|
415
|
+
def test_handshake_not_done_on_connect(self, net):
|
|
416
|
+
sock, ctx, _ = self._make_ssl_sock()
|
|
417
|
+
KafkaSSLTransport(net, sock, host='broker.example.com', ssl_context=ctx)
|
|
418
|
+
_, kwargs = ctx.wrap_socket.call_args
|
|
419
|
+
assert kwargs['do_handshake_on_connect'] is False
|
|
420
|
+
|
|
421
|
+
def test_provided_ssl_context_is_used(self, net):
|
|
422
|
+
sock, ctx, wrapped = self._make_ssl_sock()
|
|
423
|
+
t = KafkaSSLTransport(net, sock, host='broker.example.com',
|
|
424
|
+
ssl_context=ctx)
|
|
425
|
+
assert t._ssl_context is ctx
|
|
426
|
+
assert t._sock is wrapped
|
|
427
|
+
|
|
428
|
+
def test_config_defaults_and_overrides(self, net):
|
|
429
|
+
sock, ctx, _ = self._make_ssl_sock()
|
|
430
|
+
t = KafkaSSLTransport(net, sock, host='h', ssl_context=ctx,
|
|
431
|
+
ssl_check_hostname=False)
|
|
432
|
+
# Explicitly-passed ssl_* keys land in ssl_config...
|
|
433
|
+
assert t.ssl_config['ssl_check_hostname'] is False
|
|
434
|
+
assert t.ssl_config['ssl_context'] is ctx
|
|
435
|
+
# ...unspecified keys keep their defaults.
|
|
436
|
+
assert t.ssl_config['ssl_cafile'] is None
|
|
437
|
+
assert t.ssl_config['ssl_check_hostname'] is not None
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
class TestBuildSSLContext:
|
|
441
|
+
def test_returns_provided_context(self):
|
|
442
|
+
ctx = MagicMock()
|
|
443
|
+
config = dict(KafkaSSLTransport.DEFAULT_CONFIG, ssl_context=ctx)
|
|
444
|
+
assert KafkaSSLTransport._build_ssl_context(config) is ctx
|
|
445
|
+
|
|
446
|
+
def test_check_hostname_propagates_to_context(self):
|
|
447
|
+
config = dict(KafkaSSLTransport.DEFAULT_CONFIG, ssl_check_hostname=False)
|
|
448
|
+
ctx = KafkaSSLTransport._build_ssl_context(config)
|
|
449
|
+
assert ctx.check_hostname is False
|
|
450
|
+
|
|
451
|
+
def test_check_hostname_true_requires_verification(self):
|
|
452
|
+
config = dict(KafkaSSLTransport.DEFAULT_CONFIG, ssl_check_hostname=True)
|
|
453
|
+
ctx = KafkaSSLTransport._build_ssl_context(config)
|
|
454
|
+
assert ctx.check_hostname is True
|
|
455
|
+
|
|
456
|
+
|
|
370
457
|
class TestTransportWaiterCleanup:
|
|
371
458
|
"""Regression: a locally-initiated close()/abort() must reclaim the socket
|
|
372
459
|
read/write coroutine tasks parked in the event loop.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '3.0.7'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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
|
|
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.7 → kafka_python-3.0.9}/kafka/cli/admin/transactions/describe_producers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/cli/admin/users/alter_user_scram_credentials.py
RENAMED
|
File without changes
|
{kafka_python-3.0.7 → kafka_python-3.0.9}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/assignors/sticky/partition_movements.py
RENAMED
|
File without changes
|
|
File without changes
|
{kafka_python-3.0.7 → kafka_python-3.0.9}/kafka/coordinator/assignors/sticky/sticky_assignor.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
|