Skip to content

Commit b22d953

Browse files
committed
Added fix for iteration over messages in message pack
1 parent 2e570ff commit b22d953

File tree

2 files changed

+23
-13
lines changed

2 files changed

+23
-13
lines changed

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
with open(path.join(this_directory, 'README.md')) as f:
2222
long_description = f.read()
2323

24-
VERSION = "1.13.7"
24+
VERSION = "1.13.8"
2525

2626
setup(
2727
version=VERSION,

tb_device_mqtt.py

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1107,14 +1107,14 @@ def __send_publish_with_limitations(self, kwargs, timeout, device=None, msg_rate
11071107
attributes_format = topic.endswith('attributes')
11081108
if topic.endswith('telemetry') or attributes_format:
11091109
if device is None or data.get(device) is None:
1110-
device_split_messages = self._split_message(data, dp_rate_limit.get_minimal_limit(), self.max_payload_size) # noqa
1110+
device_split_messages = self._split_message(data, int(dp_rate_limit.get_minimal_limit()), self.max_payload_size) # noqa
11111111
if attributes_format:
11121112
split_messages = [{'message': msg_data, 'datapoints': len(msg_data)} for split_message in device_split_messages for msg_data in split_message['data']] # noqa
11131113
else:
11141114
split_messages = [{'message': split_message['data'], 'datapoints': split_message['datapoints']} for split_message in device_split_messages] # noqa
11151115
else:
11161116
device_data = data.get(device)
1117-
device_split_messages = self._split_message(device_data, dp_rate_limit.get_minimal_limit(), self.max_payload_size) # noqa
1117+
device_split_messages = self._split_message(device_data, int(dp_rate_limit.get_minimal_limit()), self.max_payload_size) # noqa
11181118
if attributes_format:
11191119
split_messages = [{'message': {device: msg_data}, 'datapoints': len(msg_data)} for split_message in device_split_messages for msg_data in split_message['data']] # noqa
11201120
else:
@@ -1457,16 +1457,23 @@ def split_and_add_chunk(chunk, chunk_datapoints):
14571457
current_size += chunk_size
14581458
return
14591459

1460-
max_step = datapoints_max_count if datapoints_max_count > 0 else len(keys)
1460+
max_step = int(datapoints_max_count) if datapoints_max_count > 0 else len(keys)
14611461
if max_step < 1:
14621462
max_step = 1
14631463

14641464
for i in range(0, len(keys), max_step):
1465-
sub_values = {k: chunk["values"][k] for k in keys[i:i + max_step]} if "values" in chunk else {
1466-
k: chunk[k] for k in keys[i:i + max_step]}
1467-
sub_chunk = {"ts": chunk.get("ts"), "values": sub_values} if "values" in chunk else sub_values
1468-
if "metadata" in chunk:
1469-
sub_chunk["metadata"] = chunk["metadata"]
1465+
sub_values = (
1466+
{k: chunk["values"][k] for k in keys[i:i + max_step]}
1467+
if "values" in chunk else
1468+
{k: chunk[k] for k in keys[i:i + max_step]}
1469+
)
1470+
1471+
if "ts" in chunk:
1472+
sub_chunk = {"ts": chunk["ts"], "values": sub_values}
1473+
if "metadata" in chunk:
1474+
sub_chunk["metadata"] = chunk["metadata"]
1475+
else:
1476+
sub_chunk = sub_values.copy()
14701477

14711478
sub_datapoints = len(sub_values)
14721479
sub_size = estimate_chunk_size(sub_chunk)
@@ -1508,14 +1515,17 @@ def flush_ts_group(ts_key, ts, metadata_repr):
15081515
return
15091516
values, _, metadata = ts_group_cache.pop(ts_key)
15101517
keys = list(values.keys())
1511-
step = datapoints_max_count if datapoints_max_count > 0 else len(keys)
1518+
step = int(datapoints_max_count) if datapoints_max_count > 0 else len(keys)
15121519
if step < 1:
15131520
step = 1
15141521
for i in range(0, len(keys), step):
15151522
chunk_values = {k: values[k] for k in keys[i:i + step]}
1516-
chunk = {"ts": ts, "values": chunk_values}
1517-
if metadata:
1518-
chunk["metadata"] = metadata
1523+
if ts is not None:
1524+
chunk = {"ts": ts, "values": chunk_values}
1525+
if metadata:
1526+
chunk["metadata"] = metadata
1527+
else:
1528+
chunk = chunk_values.copy()
15191529
add_chunk_to_current_message(chunk, len(chunk_values))
15201530

15211531
for message in message_pack:

0 commit comments

Comments
 (0)