Skip to content

Commit b690ff8

Browse files
author
Khole Jones
committed
Update data to try/except request
1 parent 0f58e5a commit b690ff8

25 files changed

Lines changed: 120 additions & 100 deletions

pyhiveapi/__init__.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
"""__init__.py"""
2-
from .const import *
3-
from .helper import HiveHelper
2+
from .api.hive_api import HiveApi
3+
from .api.hive_async_api import HiveAsync
4+
from .api.hive_auth import HiveAuth
5+
from .api.hive_auth_async import HiveAuthAsync
6+
from .helper.const import *
7+
from .helper.hive_exceptions import *
8+
from .helper.hive_helper import HiveHelper
49
from .hive import Hive
5-
from .hive_api import HiveApi
6-
from .hive_async_api import HiveAsync
7-
from .hive_auth import HiveAuth
8-
from .hive_auth_async import HiveAuthAsync
9-
from .hive_exceptions import *
1010
from .hive_session import Session

pyhiveapi/action.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
"""Hive Action Module."""
2-
from .hive_data import Data
2+
from .helper.hive_data import Data
33
from .hive_session import Session
44

55

@@ -49,7 +49,7 @@ async def get_state(self, device):
4949
)
5050
final = None
5151

52-
if device["hiveID"] in Data.actions:
52+
try:
5353
data = Data.actions[device["hiveID"]]
5454
final = data["enabled"]
5555
await self.logger.log(
@@ -60,7 +60,7 @@ async def get_state(self, device):
6060
)
6161
if device["hiveID"] in Data.errorList:
6262
Data.errorList.pop(device["hiveID"])
63-
else:
63+
except KeyError:
6464
await self.logger.error_check(device["hiveID"], "ERROR", "Failed")
6565

6666
return final

pyhiveapi/api/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"""__init__.py"""
Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55
from typing import Optional
66

77
import urllib3
8-
from aiohttp import ClientResponse, ClientSession
8+
from aiohttp import ClientResponse, ClientSession, web_exceptions
99
from pyquery import PyQuery
1010

11-
from .hive_data import Data
12-
from .hive_exceptions import FileInUse, NoApiToken
13-
from .logger import Logger
11+
from pyhiveapi.helper.const import HTTP_UNAUTHORIZED
12+
13+
from ..helper.hive_data import Data
14+
from ..helper.hive_exceptions import FileInUse, NoApiToken
15+
from ..helper.logger import Logger
1416

1517
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
1618

@@ -80,6 +82,11 @@ async def request(self, method: str, url: str, **kwargs) -> ClientResponse:
8082
await self.log.log(
8183
"API", "API", "Response is - {0}", info=[str(resp.status)]
8284
)
85+
elif resp.status == HTTP_UNAUTHORIZED:
86+
await self.logger.error_check(
87+
"No_ID", "ERROR", "Failed_API", resp=resp["original"]
88+
)
89+
8390
else:
8491
await self.logger.error_check(
8592
"No_ID", "ERROR", "Failed_API", resp=resp["original"]
@@ -257,9 +264,8 @@ async def set_action(self, n_id, data):
257264

258265
async def error(self):
259266
"""An error has occured iteracting wth the Hive API."""
260-
self.json_return.update({"original": "Error making API call"})
261-
self.json_return.update({"parsed": "Error making API call"})
262267
await self.log.log("API_ERROR", "ERROR", "Error attempting API call")
268+
raise web_exceptions.HTTPError
263269

264270
async def is_file_being_used(self):
265271
"""Check if running in file mode."""

pyhiveapi/const.py

Lines changed: 0 additions & 4 deletions
This file was deleted.

pyhiveapi/device_attributes.py

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Hive Device Attribute Module."""
2-
from .hive_data import Data
3-
from .logger import Logger
2+
from .helper.hive_data import Data
3+
from .helper.logger import Logger
44

55

66
class Attributes:
@@ -12,7 +12,6 @@ def __init__(self):
1212

1313
async def state_attributes(self, n_id, _type):
1414
"""Get HA State Attributes"""
15-
from .hive_session import Session
1615

1716
await self.log.log(
1817
n_id, self.type + "_Extra", "Getting Attribute data"
@@ -28,16 +27,6 @@ async def state_attributes(self, n_id, _type):
2827
if n_id in Data.MODE:
2928
attr.update({"mode": (await self.get_mode(n_id))})
3029

31-
if _type in Data.HIVE_TYPES["Sensor"]:
32-
data = Data.products[n_id]
33-
rec = data["props"].get("presenceLastChanged", False)
34-
if rec:
35-
trim = "{:10.10}".format(str(rec))
36-
time = await Session.epochtime(
37-
trim, "%d-%m-%Y %H:%M:%S", "from_epoch"
38-
)
39-
attr.update({"state_changed": time})
40-
4130
await self.log.log(
4231
n_id, self.type + "_Extra", "Attribute data {0}", info=[attr]
4332
)
@@ -48,7 +37,7 @@ async def online_offline(self, n_id):
4837
state = None
4938
final = None
5039

51-
if n_id in Data.devices:
40+
try:
5241
data = Data.devices[n_id]
5342
state = data["props"]["online"]
5443
final = state
@@ -58,7 +47,7 @@ async def online_offline(self, n_id):
5847
"Is the device online - {0}",
5948
info=[final],
6049
)
61-
else:
50+
except KeyError:
6251
await self.log.error_check(n_id, "ERROR", "Failed")
6352

6453
return final

pyhiveapi/heating.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
""""Hive Heating Module. """
2-
from .hive_data import Data
2+
from .helper.hive_data import Data
33
from .hive_session import Session
44

55

@@ -90,7 +90,7 @@ async def current_temperature(self, device):
9090
state = None
9191
final = None
9292

93-
if device["hiveID"] in Data.products:
93+
try:
9494
data = Data.products[device["hiveID"]]
9595
state = data["props"]["temperature"]
9696

@@ -133,7 +133,7 @@ async def current_temperature(self, device):
133133
)
134134

135135
final = f_state
136-
else:
136+
except KeyError:
137137
await self.logger.error_check(device["hiveID"], "ERROR", "Failed")
138138

139139
return final
@@ -172,7 +172,7 @@ async def target_temperature(self, device):
172172
state = None
173173
final = None
174174

175-
if device["hiveID"] in Data.products:
175+
try:
176176
data = Data.products[device["hiveID"]]
177177
state = float(data["state"].get("target", None))
178178
state = float(data["state"].get("heat", state))
@@ -183,7 +183,7 @@ async def target_temperature(self, device):
183183
info=[str(state)],
184184
)
185185
final = state
186-
else:
186+
except KeyError:
187187
await self.logger.error_check(device["hiveID"], "ERROR", "Failed")
188188

189189
return final
@@ -196,7 +196,7 @@ async def get_mode(self, device):
196196
state = None
197197
final = None
198198

199-
if device["hiveID"] in Data.products:
199+
try:
200200
data = Data.products[device["hiveID"]]
201201
state = data["state"]["mode"]
202202
if state == "BOOST":
@@ -208,7 +208,7 @@ async def get_mode(self, device):
208208
info=[str(state)],
209209
)
210210
final = Data.HIVETOHA[self.heatingType].get(state, state)
211-
else:
211+
except KeyError:
212212
await self.logger.error_check(device["hiveID"], "ERROR", "Failed")
213213

214214
return final
@@ -221,7 +221,7 @@ async def get_state(self, device):
221221
state = None
222222
final = None
223223

224-
if device["hiveID"] in Data.products:
224+
try:
225225
current_temp = await self.current_temperature(device)
226226
target_temp = await self.target_temperature(device)
227227
if current_temp < target_temp:
@@ -235,7 +235,7 @@ async def get_state(self, device):
235235
info=[str(state)],
236236
)
237237
final = Data.HIVETOHA[self.heatingType].get(state, state)
238-
else:
238+
except KeyError:
239239
await self.logger.error_check(device["hiveID"], "ERROR", "Failed")
240240

241241
return final
@@ -250,7 +250,7 @@ async def current_operation(self, device):
250250
state = None
251251
final = None
252252

253-
if device["hiveID"] in Data.products:
253+
try:
254254
data = Data.products[device["hiveID"]]
255255
state = data["props"]["working"]
256256
await self.logger.log(
@@ -260,7 +260,7 @@ async def current_operation(self, device):
260260
info=[str(state)],
261261
)
262262
final = state
263-
else:
263+
except KeyError:
264264
await self.logger.error_check(device["hiveID"], "ERROR", "Failed")
265265

266266
return final
@@ -275,7 +275,7 @@ async def boost(self, device):
275275
state = None
276276
final = None
277277

278-
if device["hiveID"] in Data.products:
278+
try:
279279
data = Data.products[device["hiveID"]]
280280
state = Data.HIVETOHA["Boost"].get(
281281
data["state"].get("boost", False), "ON"
@@ -287,7 +287,7 @@ async def boost(self, device):
287287
info=[str(state)],
288288
)
289289
final = state
290-
else:
290+
except KeyError:
291291
await self.logger.error_check(device["hiveID"], "ERROR", "Failed")
292292

293293
return final
@@ -303,7 +303,7 @@ async def get_boost_time(self, device):
303303
state = None
304304
final = None
305305

306-
if device["hiveID"] in Data.products:
306+
try:
307307
data = Data.products[device["hiveID"]]
308308
state = data["state"]["boost"]
309309
await self.logger.log(
@@ -315,7 +315,7 @@ async def get_boost_time(self, device):
315315
if device["hiveID"] in Data.errorList:
316316
Data.errorList.pop(device["hiveID"])
317317
final = state
318-
else:
318+
except KeyError:
319319
await self.logger.error_check(
320320
device["hiveID"], "ERROR", "Failed"
321321
)
@@ -338,7 +338,7 @@ async def get_schedule_now_next_later(self, device):
338338
state = None
339339
final = None
340340

341-
if device["hiveID"] in Data.products:
341+
try:
342342
if state != "Offline" and current_mode == "SCHEDULE":
343343
data = Data.products[device["hiveID"]]
344344
state = await self.p_get_schedule_nnl(
@@ -354,7 +354,7 @@ async def get_schedule_now_next_later(self, device):
354354
device["hiveID"], self.heatingType + "_Extra", state
355355
)
356356
final = state
357-
else:
357+
except KeyError:
358358
await self.logger.error_check(device["hiveID"], "ERROR", "Failed")
359359

360360
return final

0 commit comments

Comments
 (0)