Skip to content

Commit 8ce7fa4

Browse files
author
brentru
committed
import error handling within adafruit_io.py
1 parent 349234d commit 8ce7fa4

File tree

2 files changed

+43
-15
lines changed

2 files changed

+43
-15
lines changed

adafruit_io.py renamed to adafruit_io/adafruit_io.py

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -38,24 +38,11 @@
3838
* Adafruit's ESP32SPI library:
3939
https://github.com/adafruit/Adafruit_CircuitPython_ESP32SPI
4040
"""
41+
from adafruit_io.adafruit_io_errors import AdafruitIO_RequestError, AdafruitIO_ThrottleError
4142

4243
__version__ = "0.0.0-auto.0"
4344
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_Adafruit_IO.git"
4445

45-
class AdafruitIO_ThrottleError(Exception):
46-
"""Adafruit IO request error class for rate-limiting"""
47-
def __init__(self):
48-
super(AdafruitIO_ThrottleError, self).__init__("Number of Adafruit IO Requests exceeded! \
49-
Please try again in 30 seconds..")
50-
51-
class AdafruitIO_RequestError(Exception):
52-
"""Adafruit IO request error class"""
53-
def __init__(self, response):
54-
response_content = response.json()
55-
error = response_content['error']
56-
super(AdafruitIO_RequestError, self).__init__("Adafruit IO Error {0}: {1}"
57-
.format(response.status_code, error))
58-
5946
class RESTClient():
6047
"""
6148
REST Client for interacting with the Adafruit IO API.
@@ -91,7 +78,7 @@ def _handle_error(response):
9178
elif response.status_code == 400:
9279
raise AdafruitIO_RequestError(response)
9380
elif response.status_code >= 400:
94-
raise AdafruitIO_RequestError(response)
81+
raise adafruit_io.adafruit_io_errors.AdafruitIO_RequestError(response)
9582

9683
def _compose_path(self, path):
9784
return "{0}/{1}/{2}/{3}".format('https://io.adafruit.com/api', 'v2', self.username, path)

adafruit_io/adafruit_io_errors.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# The MIT License (MIT)
2+
#
3+
# Copyright (c) 2019 Brent Rubell for Adafruit
4+
#
5+
# Permission is hereby granted, free of charge, to any person obtaining a copy
6+
# of this software and associated documentation files (the "Software"), to deal
7+
# in the Software without restriction, including without limitation the rights
8+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
# copies of the Software, and to permit persons to whom the Software is
10+
# furnished to do so, subject to the following conditions:
11+
#
12+
# The above copyright notice and this permission notice shall be included in
13+
# all copies or substantial portions of the Software.
14+
#
15+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21+
# THE SOFTWARE.
22+
"""
23+
`adafruit_io_errors.py`
24+
======================================================
25+
CircuitPython Adafruit IO Error Classes
26+
* Author(s): Brent Rubell
27+
"""
28+
29+
class AdafruitIO_ThrottleError(Exception):
30+
"""Adafruit IO request error class for rate-limiting"""
31+
def __init__(self):
32+
super(AdafruitIO_ThrottleError, self).__init__("Number of Adafruit IO Requests exceeded! \
33+
Please try again in 30 seconds..")
34+
35+
class AdafruitIO_RequestError(Exception):
36+
"""Adafruit IO request error class"""
37+
def __init__(self, response):
38+
response_content = response.json()
39+
error = response_content['error']
40+
super(AdafruitIO_RequestError, self).__init__("Adafruit IO Error {0}: {1}"
41+
.format(response.status_code, error))

0 commit comments

Comments
 (0)