kafka-python 2.2.13__tar.gz → 2.2.15__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kafka_python-2.2.13 → kafka_python-2.2.15}/CHANGES.md +12 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/PKG-INFO +1 -1
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/consumer/fetcher.py +2 -1
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/consumer/group.py +1 -1
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/coordinator/base.py +18 -17
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/producer/record_accumulator.py +2 -2
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/producer/transaction_manager.py +2 -2
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/sasl/gssapi.py +2 -2
- kafka_python-2.2.15/kafka/version.py +1 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka_python.egg-info/PKG-INFO +1 -1
- kafka_python-2.2.13/kafka/version.py +0 -1
- {kafka_python-2.2.13 → kafka_python-2.2.15}/AUTHORS.md +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/LICENSE +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/MANIFEST.in +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/README.rst +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/admin/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/admin/acl_resource.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/admin/client.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/admin/config_resource.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/admin/new_partitions.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/admin/new_topic.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/benchmarks/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/benchmarks/consumer_performance.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/benchmarks/load_example.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/benchmarks/producer_performance.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/benchmarks/record_batch_compose.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/benchmarks/record_batch_read.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/benchmarks/varint_speed.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/client_async.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/cluster.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/codec.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/conn.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/consumer/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/consumer/subscription_state.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/coordinator/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/coordinator/assignors/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/coordinator/assignors/abstract.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/coordinator/assignors/range.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/coordinator/assignors/roundrobin.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/coordinator/assignors/sticky/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/coordinator/assignors/sticky/partition_movements.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/coordinator/assignors/sticky/sorted_set.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/coordinator/assignors/sticky/sticky_assignor.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/coordinator/consumer.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/coordinator/heartbeat.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/coordinator/protocol.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/errors.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/future.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/compound_stat.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/dict_reporter.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/kafka_metric.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/measurable.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/measurable_stat.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/metric_config.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/metric_name.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/metrics.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/metrics_reporter.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/quota.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/stat.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/stats/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/stats/avg.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/stats/count.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/stats/histogram.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/stats/max_stat.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/stats/min_stat.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/stats/percentile.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/stats/percentiles.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/stats/rate.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/stats/sampled_stat.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/stats/sensor.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/metrics/stats/total.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/partitioner/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/partitioner/default.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/producer/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/producer/future.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/producer/kafka.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/producer/sender.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/abstract.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/add_offsets_to_txn.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/add_partitions_to_txn.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/admin.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/api.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/api_versions.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/broker_api_versions.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/commit.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/end_txn.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/fetch.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/find_coordinator.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/frame.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/group.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/init_producer_id.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/list_offsets.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/message.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/metadata.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/offset_for_leader_epoch.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/parser.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/pickle.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/produce.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/sasl_authenticate.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/sasl_handshake.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/struct.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/txn_offset_commit.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/protocol/types.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/record/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/record/_crc32c.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/record/abc.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/record/default_records.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/record/legacy_records.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/record/memory_records.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/record/util.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/sasl/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/sasl/abc.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/sasl/msk.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/sasl/oauth.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/sasl/plain.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/sasl/scram.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/sasl/sspi.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/serializer/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/serializer/abstract.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/socks5_wrapper.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/structs.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/util.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/vendor/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/vendor/enum34.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/vendor/selectors34.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/vendor/six.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka/vendor/socketpair.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka_python.egg-info/SOURCES.txt +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka_python.egg-info/dependency_links.txt +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka_python.egg-info/requires.txt +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/kafka_python.egg-info/top_level.txt +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/pyproject.toml +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/setup.cfg +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/setup.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/integration/__init__.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/integration/conftest.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/integration/fixtures.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/integration/test_admin_integration.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/integration/test_consumer_group.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/integration/test_consumer_integration.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/integration/test_producer_integration.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/integration/test_sasl_integration.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_acl_comparisons.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_admin.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_api_object_implementation.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_assignors.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_client_async.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_cluster.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_codec.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_conn.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_consumer.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_coordinator.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_fetcher.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_metrics.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_object_conversion.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_package.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_partition_movements.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_partitioner.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_producer.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_protocol.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_record_accumulator.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_sender.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_subscription_state.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/test_util.py +0 -0
- {kafka_python-2.2.13 → kafka_python-2.2.15}/test/testutil.py +0 -0
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
# 2.2.15 (July 1, 2025)
|
|
2
|
+
|
|
3
|
+
Fixes
|
|
4
|
+
* Fix KafkaProducer broken method names (llk89 / #2660)
|
|
5
|
+
* Fix spelling mistake in KafkaConsumer docs (Xeus-CC / #2659)
|
|
6
|
+
|
|
7
|
+
# 2.2.14 (June 27, 2025)
|
|
8
|
+
|
|
9
|
+
Fixes
|
|
10
|
+
* python2 fixups (#2655)
|
|
11
|
+
* Fix coordinator lock contention during close() (#2652)
|
|
12
|
+
|
|
1
13
|
# 2.2.13 (June 20, 2025)
|
|
2
14
|
|
|
3
15
|
Fixes
|
|
@@ -613,7 +613,8 @@ class Fetcher(six.Iterator):
|
|
|
613
613
|
fetchable = self._subscriptions.fetchable_partitions()
|
|
614
614
|
# do not fetch a partition if we have a pending fetch response to process
|
|
615
615
|
# use copy.copy to avoid runtimeerror on mutation from different thread
|
|
616
|
-
|
|
616
|
+
# TODO: switch to deque.copy() with py3
|
|
617
|
+
discard = {fetch.topic_partition for fetch in copy.copy(self._completed_fetches)}
|
|
617
618
|
current = self._next_partition_records
|
|
618
619
|
if current:
|
|
619
620
|
discard.add(current.topic_partition)
|
|
@@ -123,7 +123,7 @@ class KafkaConsumer(six.Iterator):
|
|
|
123
123
|
be disabled in cases seeking extreme performance. Default: True
|
|
124
124
|
isolation_level (str): Configure KIP-98 transactional consumer by
|
|
125
125
|
setting to 'read_committed'. This will cause the consumer to
|
|
126
|
-
skip records from aborted
|
|
126
|
+
skip records from aborted transactions. Default: 'read_uncommitted'
|
|
127
127
|
allow_auto_create_topics (bool): Enable/disable auto topic creation
|
|
128
128
|
on metadata request. Only available with api_version >= (0, 11).
|
|
129
129
|
Default: True
|
|
@@ -857,14 +857,12 @@ class BaseCoordinator(object):
|
|
|
857
857
|
self._heartbeat_thread.disable()
|
|
858
858
|
|
|
859
859
|
def _close_heartbeat_thread(self, timeout_ms=None):
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
pass
|
|
867
|
-
self._heartbeat_thread = None
|
|
860
|
+
if self._heartbeat_thread is not None:
|
|
861
|
+
try:
|
|
862
|
+
self._heartbeat_thread.close(timeout_ms=timeout_ms)
|
|
863
|
+
except ReferenceError:
|
|
864
|
+
pass
|
|
865
|
+
self._heartbeat_thread = None
|
|
868
866
|
|
|
869
867
|
def __del__(self):
|
|
870
868
|
try:
|
|
@@ -1047,17 +1045,20 @@ class HeartbeatThread(threading.Thread):
|
|
|
1047
1045
|
self.enabled = False
|
|
1048
1046
|
|
|
1049
1047
|
def close(self, timeout_ms=None):
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1048
|
+
with self.coordinator._lock:
|
|
1049
|
+
if self.closed:
|
|
1050
|
+
return
|
|
1053
1051
|
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
# from within the heartbeat thread.
|
|
1057
|
-
if threading.current_thread() == self:
|
|
1058
|
-
return
|
|
1052
|
+
heartbeat_log.info('Stopping heartbeat thread')
|
|
1053
|
+
self.closed = True
|
|
1059
1054
|
|
|
1060
|
-
|
|
1055
|
+
# Generally this should not happen - close() is triggered
|
|
1056
|
+
# by the coordinator. But in some cases GC may close the coordinator
|
|
1057
|
+
# from within the heartbeat thread.
|
|
1058
|
+
if threading.current_thread() == self:
|
|
1059
|
+
return
|
|
1060
|
+
|
|
1061
|
+
# Notify coordinator lock to wake thread from sleep/lock.wait
|
|
1061
1062
|
self.coordinator._lock.notify()
|
|
1062
1063
|
|
|
1063
1064
|
if self.is_alive():
|
|
@@ -430,7 +430,7 @@ class RecordAccumulator(object):
|
|
|
430
430
|
expired = bool(waited_time >= time_to_wait)
|
|
431
431
|
|
|
432
432
|
sendable = (full or expired or self._closed or
|
|
433
|
-
self.
|
|
433
|
+
self.flush_in_progress())
|
|
434
434
|
|
|
435
435
|
if sendable and not backing_off:
|
|
436
436
|
ready_nodes.add(leader)
|
|
@@ -563,7 +563,7 @@ class RecordAccumulator(object):
|
|
|
563
563
|
"""Deallocate the record batch."""
|
|
564
564
|
self._incomplete.remove(batch)
|
|
565
565
|
|
|
566
|
-
def
|
|
566
|
+
def flush_in_progress(self):
|
|
567
567
|
"""Are there any threads currently waiting on a flush?"""
|
|
568
568
|
return self._flushes_in_progress.get() > 0
|
|
569
569
|
|
|
@@ -553,11 +553,11 @@ class TxnRequestHandler(object):
|
|
|
553
553
|
return self.transaction_manager.producer_id_and_epoch.epoch
|
|
554
554
|
|
|
555
555
|
def fatal_error(self, exc):
|
|
556
|
-
self.transaction_manager.
|
|
556
|
+
self.transaction_manager.transition_to_fatal_error(exc)
|
|
557
557
|
self._result.done(error=exc)
|
|
558
558
|
|
|
559
559
|
def abortable_error(self, exc):
|
|
560
|
-
self.transaction_manager.
|
|
560
|
+
self.transaction_manager.transition_to_abortable_error(exc)
|
|
561
561
|
self._result.done(error=exc)
|
|
562
562
|
|
|
563
563
|
def fail(self, exc):
|
|
@@ -68,10 +68,10 @@ class SaslMechanismGSSAPI(SaslMechanism):
|
|
|
68
68
|
# simply set QoP to 'auth' only (first octet). We reuse the max message size proposed
|
|
69
69
|
# by the server
|
|
70
70
|
client_flags = self.SASL_QOP_AUTH
|
|
71
|
-
server_flags = msg[0]
|
|
71
|
+
server_flags = struct.Struct('>b').unpack(msg[0:1])[0]
|
|
72
72
|
message_parts = [
|
|
73
73
|
struct.Struct('>b').pack(client_flags & server_flags),
|
|
74
|
-
msg[1:],
|
|
74
|
+
msg[1:], # always agree to max message size from server
|
|
75
75
|
self.auth_id.encode('utf-8'),
|
|
76
76
|
]
|
|
77
77
|
# add authorization identity to the response, and GSS-wrap
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.2.15'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.2.13'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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-2.2.13 → kafka_python-2.2.15}/kafka/coordinator/assignors/sticky/sorted_set.py
RENAMED
|
File without changes
|
{kafka_python-2.2.13 → kafka_python-2.2.15}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|