File tree Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Expand file tree Collapse file tree 1 file changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -53,6 +53,16 @@ def validate_feed_key(feed_key: str):
53
53
"Feed key must contain English letters, numbers, dash, and a period or a forward slash."
54
54
)
55
55
56
+ def validate_n_values (n_values : int ):
57
+ """Validates a provided number of values to retrieve data from Adafruit IO.
58
+
59
+ Although Adafruit IO will accept values < 1 and > 1000, this avoids two types of issues:
60
+ <1 - Coding errors
61
+ >1000 - Pagination-related expectation management
62
+
63
+ """
64
+ if n_values < 1 or n_values > 1000 : # validate 0 < n_values <= 1000
65
+ raise ValueError ("Number of values must be greater than zero and less than or equal to 1000" )
56
66
57
67
class IO_MQTT :
58
68
"""
@@ -632,6 +642,18 @@ def receive_all_data(self, feed_key: str):
632
642
validate_feed_key (feed_key )
633
643
path = self ._compose_path ("feeds/{0}/data" .format (feed_key ))
634
644
return self ._get (path )
645
+
646
+ def receive_n_data (self , feed_key : str , n_values : int ):
647
+ """
648
+ Get n data values from a specified Adafruit IO feed. Data is
649
+ returned in reverse order.
650
+
651
+ :param str feed_key: Adafruit IO feed key
652
+ """
653
+ validate_n_values (n_values )
654
+ validate_feed_key (feed_key )
655
+ path = self ._compose_path ("feeds/{0}/data?limit={1}" .format (feed_key ,n_values ))
656
+ return self ._get (path )
635
657
636
658
def receive_data (self , feed_key : str ):
637
659
"""
You can’t perform that action at this time.
0 commit comments