kafka-python 3.0.6__tar.gz → 3.0.8__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.6 → kafka_python-3.0.8}/CHANGES.md +11 -1
- {kafka_python-3.0.6 → kafka_python-3.0.8}/PKG-INFO +1 -1
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/manager.py +4 -24
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/transport.py +51 -8
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/producer/kafka.py +1 -1
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/producer/sender.py +3 -2
- kafka_python-3.0.8/kafka/version.py +1 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka_python.egg-info/PKG-INFO +1 -1
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/net/test_transport.py +144 -2
- kafka_python-3.0.6/kafka/version.py +0 -1
- {kafka_python-3.0.6 → kafka_python-3.0.8}/AUTHORS.md +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/LICENSE +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/MANIFEST.in +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/README.rst +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/__main__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/admin/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/admin/__main__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/admin/_acls.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/admin/_cluster.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/admin/_configs.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/admin/_groups.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/admin/_partitions.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/admin/_topics.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/admin/_transactions.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/admin/_users.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/admin/client.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/benchmarks/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/benchmarks/consumer_performance.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/benchmarks/load_example.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/benchmarks/producer_encode_path.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/benchmarks/producer_performance.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/benchmarks/profile_protocol.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/benchmarks/protocol_old_vs_new.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/benchmarks/record_batch_compose.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/benchmarks/record_batch_read.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/benchmarks/varint_speed.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/acls/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/acls/common.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/acls/create.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/acls/delete.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/acls/describe.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/cluster/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/cluster/describe.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/cluster/describe_quorum.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/cluster/features.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/cluster/log_dirs.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/cluster/versions.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/configs/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/configs/alter.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/configs/common.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/configs/describe.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/configs/list.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/configs/reset.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/groups/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/groups/alter_offsets.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/groups/delete.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/groups/delete_offsets.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/groups/describe.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/groups/list.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/groups/list_offsets.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/groups/remove_members.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/groups/reset_offsets.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/partitions/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/partitions/alter_reassignments.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/partitions/create.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/partitions/delete_records.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/partitions/describe.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/partitions/elect_leaders.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/partitions/list_offsets.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/partitions/list_reassignments.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/topics/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/topics/create.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/topics/delete.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/topics/describe.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/topics/list.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/transactions/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/transactions/abort.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/transactions/describe.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/transactions/describe_producers.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/transactions/find_hanging.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/transactions/list.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/users/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/users/alter_user_scram_credentials.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/users/describe_user_scram_credentials.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/common.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/consumer/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/producer/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cluster.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/codec.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/consumer/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/consumer/__main__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/consumer/fetcher.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/consumer/group.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/consumer/subscription_state.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/coordinator/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/coordinator/assignors/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/coordinator/assignors/abstract.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/coordinator/assignors/cooperative_sticky.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/coordinator/assignors/range.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/coordinator/assignors/roundrobin.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/coordinator/assignors/sticky/StickyAssignorUserData.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/coordinator/assignors/sticky/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/coordinator/assignors/sticky/partition_movements.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/coordinator/assignors/sticky/sorted_set.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/coordinator/assignors/sticky/sticky_assignor.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/coordinator/assignors/sticky/user_data.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/coordinator/base.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/coordinator/consumer.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/coordinator/heartbeat.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/coordinator/subscription.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/errors.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/future.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/compound_stat.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/dict_reporter.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/kafka_metric.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/measurable.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/measurable_stat.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/metric_config.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/metric_name.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/metrics.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/metrics_reporter.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/quota.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/stat.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/stats/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/stats/avg.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/stats/count.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/stats/histogram.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/stats/max_stat.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/stats/min_stat.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/stats/percentile.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/stats/percentiles.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/stats/rate.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/stats/sampled_stat.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/stats/sensor.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/metrics/stats/total.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/compat.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/connection.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/http_connect.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/inet.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/metrics.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/sasl/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/sasl/abc.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/sasl/gssapi.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/sasl/msk.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/sasl/oauth.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/sasl/plain.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/sasl/scram.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/sasl/sspi.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/selector.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/socks5.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/net/wakeup_notifier.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/partitioner/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/partitioner/abc.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/partitioner/default.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/partitioner/sticky.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/producer/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/producer/__main__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/producer/future.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/producer/producer_batch.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/producer/record_accumulator.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/producer/transaction_manager.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/acl.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/acl.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/client_quotas.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/client_quotas.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/cluster.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/cluster.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/configs.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/configs.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/groups.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/groups.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/topics.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/topics.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/transactions.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/transactions.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/users.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/admin/users.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/api_data.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/api_header.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/api_key.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/api_message.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/broker_version_data.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/consumer/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/consumer/fetch.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/consumer/fetch.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/consumer/group.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/consumer/group.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/consumer/metadata.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/consumer/metadata.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/consumer/offsets.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/consumer/offsets.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/data_container.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/frame.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/generate_stubs.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/metadata/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/metadata/api_versions.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/metadata/api_versions.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/metadata/find_coordinator.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/metadata/find_coordinator.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/metadata/metadata.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/metadata/metadata.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/abstract.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/add_offsets_to_txn.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/add_partitions_to_txn.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/admin.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/api.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/api_versions.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/commit.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/consumer_protocol.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/end_txn.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/fetch.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/find_coordinator.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/group.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/init_producer_id.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/list_offsets.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/metadata.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/offset_for_leader_epoch.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/produce.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/sasl_authenticate.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/sasl_handshake.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/struct.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/txn_offset_commit.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/old/types.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/parser.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/producer/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/producer/produce.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/producer/produce.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/producer/transaction.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/producer/transaction.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/sasl.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/sasl.pyi +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/array.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/base.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/codecs/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/codecs/encode_buffer.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/codecs/tagged_fields.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/codecs/types.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/codegen.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/simple.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/struct.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/fields/struct_array.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/load_json.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AddOffsetsToTxnRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AddOffsetsToTxnResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AddPartitionsToTxnRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AddPartitionsToTxnResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterClientQuotasRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterClientQuotasResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterConfigsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterConfigsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterPartitionReassignmentsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterPartitionReassignmentsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterReplicaLogDirsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterReplicaLogDirsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterUserScramCredentialsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/AlterUserScramCredentialsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ApiVersionsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ApiVersionsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ConsumerProtocolAssignment.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ConsumerProtocolSubscription.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/CreateAclsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/CreateAclsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/CreatePartitionsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/CreatePartitionsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/CreateTopicsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/CreateTopicsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DeleteAclsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DeleteAclsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DeleteGroupsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DeleteGroupsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DeleteRecordsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DeleteRecordsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DeleteTopicsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DeleteTopicsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeAclsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeAclsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeClientQuotasRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeClientQuotasResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeClusterRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeClusterResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeConfigsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeConfigsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeGroupsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeGroupsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeLogDirsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeLogDirsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeProducersRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeProducersResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeQuorumRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeQuorumResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeTopicPartitionsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeTopicPartitionsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeTransactionsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeTransactionsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeUserScramCredentialsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/DescribeUserScramCredentialsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ElectLeadersRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ElectLeadersResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/EndTxnRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/EndTxnResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/FetchRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/FetchResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/FindCoordinatorRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/FindCoordinatorResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/HeartbeatRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/HeartbeatResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/IncrementalAlterConfigsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/IncrementalAlterConfigsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/InitProducerIdRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/InitProducerIdResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/JoinGroupRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/JoinGroupResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/LeaveGroupRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/LeaveGroupResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListConfigResourcesRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListConfigResourcesResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListGroupsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListGroupsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListOffsetsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListOffsetsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListPartitionReassignmentsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListPartitionReassignmentsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListTransactionsRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ListTransactionsResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/MetadataRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/MetadataResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/OffsetCommitRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/OffsetCommitResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/OffsetDeleteRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/OffsetDeleteResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/OffsetFetchRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/OffsetFetchResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/OffsetForLeaderEpochRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/OffsetForLeaderEpochResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ProduceRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ProduceResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/RequestHeader.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/ResponseHeader.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/SaslAuthenticateRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/SaslAuthenticateResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/SaslHandshakeRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/SaslHandshakeResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/SyncGroupRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/SyncGroupResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/TxnOffsetCommitRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/TxnOffsetCommitResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/UpdateFeaturesRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/UpdateFeaturesResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/WriteTxnMarkersRequest.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/WriteTxnMarkersResponse.json +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/protocol/schemas/resources/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/record/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/record/_crc32c.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/record/abc.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/record/default_records.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/record/legacy_records.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/record/memory_records.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/record/util.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/serializer/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/serializer/abstract.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/serializer/default.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/serializer/json.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/serializer/wrapper.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/structs.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/util.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/vendor/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka_python.egg-info/SOURCES.txt +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka_python.egg-info/dependency_links.txt +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka_python.egg-info/entry_points.txt +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka_python.egg-info/requires.txt +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/kafka_python.egg-info/top_level.txt +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/pyproject.toml +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/setup.cfg +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/integration/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/integration/conftest.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/integration/fixtures.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/integration/test_admin_integration.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/integration/test_consumer_integration.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/integration/test_producer_integration.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/integration/test_sasl_integration.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/integration/test_ssl_integration.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/net/__init__.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/net/test_compat.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/net/test_connection.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/net/test_http_connect.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/net/test_inet.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/net/test_manager.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/net/test_sasl_reauthentication.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/net/test_selector.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/net/test_wakeup_notifier.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/test_cluster.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/test_codec.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/test_future.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/test_metrics.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/test_mock_broker.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/test_package.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/test_util.py +0 -0
- {kafka_python-3.0.6 → kafka_python-3.0.8}/test/testutil.py +0 -0
|
@@ -1,9 +1,19 @@
|
|
|
1
|
+
# 3.0.8 (Jul 9, 2026)
|
|
2
|
+
|
|
3
|
+
### Fixes
|
|
4
|
+
* transport: Fix TLS SNI when `ssl_check_hostname=False` (#3114)
|
|
5
|
+
|
|
6
|
+
# 3.0.7 (Jun 28, 2026)
|
|
7
|
+
|
|
8
|
+
### Fixes
|
|
9
|
+
* transport: cancel pending io coroutines on close() (#3109)
|
|
10
|
+
* producer: fix stalled shutdown when brokers unreachable (#3108)
|
|
11
|
+
|
|
1
12
|
# 3.0.6 (Jun 25, 2026)
|
|
2
13
|
|
|
3
14
|
### Fixes
|
|
4
15
|
* consumer: track current leader epoch in addition to record epoch (#3107)
|
|
5
16
|
|
|
6
|
-
|
|
7
17
|
### CI
|
|
8
18
|
* Also `wait_for_topics` on <0.10 test fixtures (#3105)
|
|
9
19
|
|
|
@@ -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
|
|
@@ -19,6 +20,8 @@ class KafkaTCPTransport:
|
|
|
19
20
|
self._closed = False
|
|
20
21
|
self._write_buffer = deque()
|
|
21
22
|
self._writing = False
|
|
23
|
+
self._read_task = None
|
|
24
|
+
self._write_task = None
|
|
22
25
|
self._protocol = None
|
|
23
26
|
self._read = False
|
|
24
27
|
self._write = True
|
|
@@ -80,7 +83,7 @@ class KafkaTCPTransport:
|
|
|
80
83
|
data_received() method.
|
|
81
84
|
"""
|
|
82
85
|
if not self._read:
|
|
83
|
-
self._net.call_soon(self._read_from_sock)
|
|
86
|
+
self._read_task = self._net.call_soon(self._read_from_sock)
|
|
84
87
|
self._read = True
|
|
85
88
|
log.debug('%s: Resumed reading', self)
|
|
86
89
|
|
|
@@ -173,7 +176,7 @@ class KafkaTCPTransport:
|
|
|
173
176
|
self._write_buffer.append(data)
|
|
174
177
|
if not self._writing:
|
|
175
178
|
self._writing = True
|
|
176
|
-
self._net.call_soon(self._write_to_sock)
|
|
179
|
+
self._write_task = self._net.call_soon(self._write_to_sock)
|
|
177
180
|
|
|
178
181
|
def writelines(self, list_of_data):
|
|
179
182
|
"""Write a list (or any iterable) of data bytes to the transport."""
|
|
@@ -182,7 +185,7 @@ class KafkaTCPTransport:
|
|
|
182
185
|
self._write_buffer.extend(list_of_data)
|
|
183
186
|
if not self._writing:
|
|
184
187
|
self._writing = True
|
|
185
|
-
self._net.call_soon(self._write_to_sock)
|
|
188
|
+
self._write_task = self._net.call_soon(self._write_to_sock)
|
|
186
189
|
|
|
187
190
|
async def _write_to_sock(self):
|
|
188
191
|
try:
|
|
@@ -272,6 +275,10 @@ class KafkaTCPTransport:
|
|
|
272
275
|
except OSError:
|
|
273
276
|
pass
|
|
274
277
|
sock.close()
|
|
278
|
+
for task in (self._read_task, self._write_task):
|
|
279
|
+
if task is not None:
|
|
280
|
+
self._net.cancel(task)
|
|
281
|
+
self._read_task = self._write_task = None
|
|
275
282
|
proto = self._protocol
|
|
276
283
|
self._protocol = None
|
|
277
284
|
if proto is not None:
|
|
@@ -365,13 +372,49 @@ class KafkaTCPTransport:
|
|
|
365
372
|
|
|
366
373
|
|
|
367
374
|
class KafkaSSLTransport(KafkaTCPTransport):
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
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)
|
|
373
394
|
super().__init__(net, sock, host=host)
|
|
374
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
|
+
|
|
375
418
|
async def handshake(self):
|
|
376
419
|
while True:
|
|
377
420
|
try:
|
|
@@ -310,7 +310,7 @@ class Sender(threading.Thread):
|
|
|
310
310
|
return False
|
|
311
311
|
|
|
312
312
|
log.debug("%s: Sending transactional request %s", str(self), next_request_handler.request)
|
|
313
|
-
while not self._force_close:
|
|
313
|
+
while self._running and not self._force_close:
|
|
314
314
|
target_node = None
|
|
315
315
|
try:
|
|
316
316
|
if next_request_handler.needs_coordinator():
|
|
@@ -325,7 +325,8 @@ class Sender(threading.Thread):
|
|
|
325
325
|
else:
|
|
326
326
|
target_node = self._client.least_loaded_node()
|
|
327
327
|
if target_node is None:
|
|
328
|
-
self._client.poll(
|
|
328
|
+
self._client.poll(timeout_ms=self.config['retry_backoff_ms'],
|
|
329
|
+
future=self._metadata.request_update())
|
|
329
330
|
elif not self._client.await_ready(target_node, timeout_ms=self.config['request_timeout_ms']):
|
|
330
331
|
continue
|
|
331
332
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '3.0.8'
|
|
@@ -6,8 +6,8 @@ import pytest
|
|
|
6
6
|
|
|
7
7
|
import kafka.errors as Errors
|
|
8
8
|
from kafka.future import Future
|
|
9
|
-
from kafka.net.selector import NetworkSelector
|
|
10
|
-
from kafka.net.transport import KafkaTCPTransport
|
|
9
|
+
from kafka.net.selector import NetworkSelector, TaskState
|
|
10
|
+
from kafka.net.transport import KafkaSSLTransport, KafkaTCPTransport
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
@pytest.fixture
|
|
@@ -365,3 +365,145 @@ class TestKafkaTCPTransport:
|
|
|
365
365
|
t._closed = True
|
|
366
366
|
s = str(t)
|
|
367
367
|
assert 'closed' in s
|
|
368
|
+
|
|
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
|
+
|
|
457
|
+
class TestTransportWaiterCleanup:
|
|
458
|
+
"""Regression: a locally-initiated close()/abort() must reclaim the socket
|
|
459
|
+
read/write coroutine tasks parked in the event loop.
|
|
460
|
+
|
|
461
|
+
These tests fail until ``KafkaTCPTransport._close`` cancels its read/write
|
|
462
|
+
waiter tasks (``net.cancel(task)``); the selector's existing WAIT_IO branch
|
|
463
|
+
in ``cancel()`` then drives the io_guard finalizer and discards the task.
|
|
464
|
+
"""
|
|
465
|
+
|
|
466
|
+
def test_local_close_reclaims_parked_reader(self, net, socketpair):
|
|
467
|
+
rsock, wsock = socketpair
|
|
468
|
+
t = KafkaTCPTransport(net, wsock)
|
|
469
|
+
t.set_protocol(MagicMock())
|
|
470
|
+
baseline = len(net._pending_tasks)
|
|
471
|
+
|
|
472
|
+
t.resume_reading()
|
|
473
|
+
net.drain() # reader runs and parks in WAIT_IO on wait_read(wsock)
|
|
474
|
+
parked = [task for task in net._pending_tasks if task.state is TaskState.WAIT_IO]
|
|
475
|
+
assert len(parked) == 1, 'reader did not park as expected'
|
|
476
|
+
assert len(net._pending_tasks) == baseline + 1
|
|
477
|
+
|
|
478
|
+
# Empty write buffer -> close() tears the socket down synchronously. The
|
|
479
|
+
# peer (rsock) never sent anything, so there is no I/O event to wake the
|
|
480
|
+
# parked reader; close() itself must reclaim it.
|
|
481
|
+
t.close()
|
|
482
|
+
net.drain() # running the loop must not be needed -- and must not help either
|
|
483
|
+
|
|
484
|
+
assert t._sock is None
|
|
485
|
+
assert len(net._pending_tasks) == baseline, (
|
|
486
|
+
'parked reader leaked into _pending_tasks after local close')
|
|
487
|
+
assert not any(task.state is TaskState.WAIT_IO for task in net._pending_tasks)
|
|
488
|
+
|
|
489
|
+
def test_local_close_reclaims_parked_writer(self, net, socketpair):
|
|
490
|
+
rsock, wsock = socketpair
|
|
491
|
+
t = KafkaTCPTransport(net, wsock)
|
|
492
|
+
t.set_protocol(MagicMock())
|
|
493
|
+
baseline = len(net._pending_tasks)
|
|
494
|
+
|
|
495
|
+
# write() schedules _write_to_sock, whose loop parks on the first
|
|
496
|
+
# wait_write before the bytes leave the buffer. drain() steps it once
|
|
497
|
+
# to the park and returns (no _ready left), leaving it suspended.
|
|
498
|
+
t.write(b'data')
|
|
499
|
+
net.drain()
|
|
500
|
+
parked = [task for task in net._pending_tasks if task.state is TaskState.WAIT_IO]
|
|
501
|
+
assert len(parked) == 1, 'writer did not park as expected'
|
|
502
|
+
|
|
503
|
+
t.abort(error=Errors.KafkaConnectionError('boom'))
|
|
504
|
+
net.drain()
|
|
505
|
+
|
|
506
|
+
assert t._sock is None
|
|
507
|
+
assert len(net._pending_tasks) == baseline, (
|
|
508
|
+
'parked writer leaked into _pending_tasks after abort')
|
|
509
|
+
assert not any(task.state is TaskState.WAIT_IO for task in net._pending_tasks)
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '3.0.6'
|
|
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.6 → kafka_python-3.0.8}/kafka/cli/admin/transactions/describe_producers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kafka_python-3.0.6 → kafka_python-3.0.8}/kafka/cli/admin/users/alter_user_scram_credentials.py
RENAMED
|
File without changes
|
{kafka_python-3.0.6 → kafka_python-3.0.8}/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
|
|
File without changes
|