From d513f79725049155a934a916e548b8930ae7be53 Mon Sep 17 00:00:00 2001 From: Melissa LeBlanc-Williams Date: Mon, 31 Aug 2020 09:30:58 -0700 Subject: [PATCH 1/2] Added get_all_data and linted --- adafruit_io/adafruit_io.py | 27 +++++++++++++++++++-------- adafruit_io/adafruit_io_errors.py | 6 +++--- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/adafruit_io/adafruit_io.py b/adafruit_io/adafruit_io.py index afc558a..d74762e 100755 --- a/adafruit_io/adafruit_io.py +++ b/adafruit_io/adafruit_io.py @@ -70,10 +70,10 @@ def __init__(self, mqtt_client): # MiniMQTT's username kwarg is optional, IO requires a username try: self._user = self._client.user - except: + except Exception as err: raise TypeError( "Adafruit IO requires a username, please set one in MiniMQTT" - ) + ) from err # User-defined MQTT callback methods must be init'd to None self.on_connect = None self.on_disconnect = None @@ -105,8 +105,8 @@ def reconnect(self): """ try: self._client.reconnect() - except: - raise AdafruitIO_MQTTError("Unable to reconnect to Adafruit IO.") + except Exception as err: + raise AdafruitIO_MQTTError("Unable to reconnect to Adafruit IO.") from err def connect(self): """Connects to the Adafruit IO MQTT Broker. @@ -114,8 +114,8 @@ def connect(self): """ try: self._client.connect() - except: - raise AdafruitIO_MQTTError("Unable to connect to Adafruit IO.") + except Exception as err: + raise AdafruitIO_MQTTError("Unable to connect to Adafruit IO.") from err def disconnect(self): """Disconnects from Adafruit IO MQTT Broker. @@ -556,11 +556,22 @@ def send_data(self, feed_key, data, metadata=None, precision=None): if precision: try: data = round(data, precision) - except NotImplementedError: # received a non-float value - raise NotImplementedError("Precision requires a floating point value") + except NotImplementedError as err: # received a non-float value + raise NotImplementedError( + "Precision requires a floating point value" + ) from err payload = self._create_data(data, metadata) self._post(path, payload) + def receive_all_data(self, feed_key): + """ + Get all data values from a specified Adafruit IO feed. Data is + returned in reverse order. + :param str feed_key: Adafruit IO feed key + """ + path = self._compose_path("feeds/{0}/data".format(feed_key)) + return self._get(path) + def receive_data(self, feed_key): """ Return the most recent value for the specified feed. diff --git a/adafruit_io/adafruit_io_errors.py b/adafruit_io/adafruit_io_errors.py index 10e0389..3047568 100755 --- a/adafruit_io/adafruit_io_errors.py +++ b/adafruit_io/adafruit_io_errors.py @@ -31,7 +31,7 @@ class AdafruitIO_ThrottleError(Exception): """Adafruit IO request error class for rate-limiting""" def __init__(self): - super(AdafruitIO_ThrottleError, self).__init__( + super().__init__( "Number of Adafruit IO Requests exceeded! \ Please try again in 30 seconds.." ) @@ -43,7 +43,7 @@ class AdafruitIO_RequestError(Exception): def __init__(self, response): response_content = response.json() error = response_content["error"] - super(AdafruitIO_RequestError, self).__init__( + super().__init__( "Adafruit IO Error {0}: {1}".format(response.status_code, error) ) @@ -52,4 +52,4 @@ class AdafruitIO_MQTTError(Exception): """Adafruit IO MQTT error class""" def __init__(self, response): - super(AdafruitIO_MQTTError, self).__init__("MQTT Error: {0}".format(response)) + super().__init__("MQTT Error: {0}".format(response)) From 871dd8b5dc6f7155a47f9b82415e24eb9c84269f Mon Sep 17 00:00:00 2001 From: Melissa LeBlanc-Williams Date: Mon, 31 Aug 2020 09:41:23 -0700 Subject: [PATCH 2/2] Linted examples --- examples/adafruit_io_http/adafruit_io_esp_at.py | 6 +++--- examples/adafruit_io_http/adafruit_io_temperature.py | 6 +++--- examples/adafruit_io_mqtt/adafruit_io_groups.py | 2 +- .../adafruit_io_mqtt/adafruit_io_simpletest_cellular.py | 2 +- examples/adafruit_io_mqtt/adafruit_io_simpletest_eth.py | 2 +- examples/adafruit_io_simpletest.py | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/examples/adafruit_io_http/adafruit_io_esp_at.py b/examples/adafruit_io_http/adafruit_io_esp_at.py index 2a724c8..cf703b3 100644 --- a/examples/adafruit_io_http/adafruit_io_esp_at.py +++ b/examples/adafruit_io_http/adafruit_io_esp_at.py @@ -10,9 +10,6 @@ import busio from digitalio import DigitalInOut -# Import Adafruit IO HTTP Client -from adafruit_io.adafruit_io import IO_HTTP, AdafruitIO_RequestError - # ESP32 AT from adafruit_espatcontrol import ( adafruit_espatcontrol, @@ -22,6 +19,9 @@ # Use below for Most Boards import neopixel +# Import Adafruit IO HTTP Client +from adafruit_io.adafruit_io import IO_HTTP, AdafruitIO_RequestError + status_light = neopixel.NeoPixel( board.NEOPIXEL, 1, brightness=0.2 ) # Uncomment for Most Boards diff --git a/examples/adafruit_io_http/adafruit_io_temperature.py b/examples/adafruit_io_http/adafruit_io_temperature.py index 020e54c..f124b48 100644 --- a/examples/adafruit_io_http/adafruit_io_temperature.py +++ b/examples/adafruit_io_http/adafruit_io_temperature.py @@ -17,12 +17,12 @@ # Import NeoPixel Library import neopixel -# Import Adafruit IO HTTP Client -from adafruit_io.adafruit_io import IO_HTTP, AdafruitIO_RequestError - # Import ADT7410 Library import adafruit_adt7410 +# Import Adafruit IO HTTP Client +from adafruit_io.adafruit_io import IO_HTTP, AdafruitIO_RequestError + # Get wifi details and more from a secrets.py file try: from secrets import secrets diff --git a/examples/adafruit_io_mqtt/adafruit_io_groups.py b/examples/adafruit_io_mqtt/adafruit_io_groups.py index 2f278ff..8077d41 100755 --- a/examples/adafruit_io_mqtt/adafruit_io_groups.py +++ b/examples/adafruit_io_mqtt/adafruit_io_groups.py @@ -10,8 +10,8 @@ from adafruit_esp32spi import adafruit_esp32spi_wifimanager import adafruit_esp32spi.adafruit_esp32spi_socket as socket import neopixel -from adafruit_io.adafruit_io import IO_MQTT import adafruit_minimqtt.adafruit_minimqtt as MQTT +from adafruit_io.adafruit_io import IO_MQTT ### WiFi ### diff --git a/examples/adafruit_io_mqtt/adafruit_io_simpletest_cellular.py b/examples/adafruit_io_mqtt/adafruit_io_simpletest_cellular.py index 42ca892..7fe24e4 100644 --- a/examples/adafruit_io_mqtt/adafruit_io_simpletest_cellular.py +++ b/examples/adafruit_io_mqtt/adafruit_io_simpletest_cellular.py @@ -15,8 +15,8 @@ from adafruit_fona.adafruit_fona_gsm import GSM import adafruit_fona.adafruit_fona_socket as cellular_socket -from adafruit_io.adafruit_io import IO_MQTT import adafruit_minimqtt.adafruit_minimqtt as MQTT +from adafruit_io.adafruit_io import IO_MQTT # Get MQTT details and more from a secrets.py file try: diff --git a/examples/adafruit_io_mqtt/adafruit_io_simpletest_eth.py b/examples/adafruit_io_mqtt/adafruit_io_simpletest_eth.py index 5ddb659..abf5827 100755 --- a/examples/adafruit_io_mqtt/adafruit_io_simpletest_eth.py +++ b/examples/adafruit_io_mqtt/adafruit_io_simpletest_eth.py @@ -13,8 +13,8 @@ from adafruit_wiznet5k.adafruit_wiznet5k import WIZNET5K import adafruit_wiznet5k.adafruit_wiznet5k_socket as socket -from adafruit_io.adafruit_io import IO_MQTT import adafruit_minimqtt.adafruit_minimqtt as MQTT +from adafruit_io.adafruit_io import IO_MQTT # Get MQTT details and more from a secrets.py file try: diff --git a/examples/adafruit_io_simpletest.py b/examples/adafruit_io_simpletest.py index 8ad9303..6d125b1 100755 --- a/examples/adafruit_io_simpletest.py +++ b/examples/adafruit_io_simpletest.py @@ -15,8 +15,8 @@ from adafruit_esp32spi import adafruit_esp32spi_wifimanager import adafruit_esp32spi.adafruit_esp32spi_socket as socket import neopixel -from adafruit_io.adafruit_io import IO_MQTT import adafruit_minimqtt.adafruit_minimqtt as MQTT +from adafruit_io.adafruit_io import IO_MQTT ### WiFi ###