Skip to content

Commit cc41fa1

Browse files
committed
Improve queue - submit()
1 parent 45f481c commit cc41fa1

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

plugwise_usb/connection/queue.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -75,48 +75,52 @@ async def stop(self) -> None:
7575
_LOGGER.debug("queue stopped")
7676

7777
async def submit(self, request: PlugwiseRequest) -> PlugwiseResponse | None:
78-
"""Add request to queue and return the response of node. Raises an error when something fails."""
78+
"""Add request to queue and return the received node-response when applicable.
79+
80+
Raises an error when something fails.
81+
"""
7982
if request.waiting_for_response:
8083
raise MessageError(
8184
f"Cannot send message {request} which is currently waiting for response."
8285
)
8386

84-
while request.resend and not request.waiting_for_response:
87+
while request.resend:
8588
_LOGGER.debug("submit | start (%s) %s", request.retries_left, request)
8689
if not self._running or self._stick is None:
8790
raise StickError(
8891
f"Cannot send message {request.__class__.__name__} for"
8992
+ f"{request.mac_decoded} because queue manager is stopped"
9093
)
94+
9195
await self._add_request_to_queue(request)
9296
try:
9397
if not request.node_response_expected:
9498
return None
9599
response: PlugwiseResponse = await request.response_future()
96100
return response
97-
except (NodeTimeout, StickTimeout) as e:
101+
except (NodeTimeout, StickTimeout) as exc:
98102
if isinstance(request, NodePingRequest):
99103
# For ping requests it is expected to receive timeouts, so lower log level
100104
_LOGGER.debug(
101-
"%s, cancel because timeout is expected for NodePingRequests", e
105+
"%s, cancel because timeout is expected for NodePingRequests", exc
102106
)
103107
elif request.resend:
104-
_LOGGER.debug("%s, retrying", e)
108+
_LOGGER.debug("%s, retrying", exc)
105109
else:
106-
_LOGGER.warning("%s, cancel request", e) # type: ignore[unreachable]
107-
except StickError as exception:
108-
_LOGGER.error(exception)
110+
_LOGGER.warning("%s, cancel request", exc) # type: ignore[unreachable]
111+
except StickError as exc:
112+
_LOGGER.error(exc)
109113
self._stick.correct_received_messages(1)
110114
raise StickError(
111115
f"No response received for {request.__class__.__name__} "
112116
+ f"to {request.mac_decoded}"
113-
) from exception
114-
except BaseException as exception:
117+
) from exc
118+
except BaseException as exc:
115119
self._stick.correct_received_messages(1)
116120
raise StickError(
117121
f"No response received for {request.__class__.__name__} "
118122
+ f"to {request.mac_decoded}"
119-
) from exception
123+
) from exc
120124

121125
return None
122126

0 commit comments

Comments
 (0)