Skip to content

Commit e0998f0

Browse files
committed
Add list of dicts support to send_batch_data
1 parent 2787332 commit e0998f0

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

adafruit_io/adafruit_io.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -636,12 +636,17 @@ def send_batch_data(self, feed_key: str, data_list: list):
636636
Sends a batch array of data to a specified Adafruit IO feed
637637
638638
:param str feed_key: Adafruit IO feed key
639-
:param list Data: Data list to send
639+
:param list Data: Data list to send (namedtuples or dicts with 'value' key)
640640
"""
641641
validate_feed_key(feed_key)
642+
if not isinstance(data_list, list) or data_list == []:
643+
raise ValueError("Data must be a list of dicts or namedtuples")
644+
if not isinstance(data_list[0], dict): # assume namedtuple
645+
data_list = type(data_list)((data._asdict() for data in data_list))
646+
if not all("value" in data for data in data_list):
647+
raise ValueError("Data list items must at least contain a 'value' key")
642648
path = self._compose_path("feeds/{0}/data/batch".format(feed_key))
643-
data_dict = type(data_list)((data._asdict() for data in data_list))
644-
self._post(path, {"data": data_dict})
649+
self._post(path, {"data": data_list})
645650

646651
def send_group_data(
647652
self, group_key: str, feeds_and_data: list, metadata: Optional[dict] = None

0 commit comments

Comments
 (0)