Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions src/wled/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -290,8 +290,7 @@ def from_dict(data: dict[str, Any]) -> Info:
Returns:
A info object.
"""
websocket = data.get("ws")
if websocket == -1:
if (websocket := data.get("ws")) == -1:
websocket = None

return Info(
Expand Down
18 changes: 7 additions & 11 deletions src/wled/wled.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,9 @@
import asyncio
import json
import socket
from collections.abc import Callable
from dataclasses import dataclass
from typing import Any, Callable
from typing import Any

import aiohttp
import async_timeout
Expand Down Expand Up @@ -225,8 +226,7 @@ async def update(self, full_update: bool = False) -> Device:
WLEDEmptyResponseError: The WLED device returned an empty response.
"""
if self._device is None or full_update:
data = await self.request("/json")
if not data:
if not (data := await self.request("/json")):
raise WLEDEmptyResponseError(
f"WLED device at {self.host} returned an empty API"
" response on full update"
Expand Down Expand Up @@ -260,8 +260,7 @@ async def update(self, full_update: bool = False) -> Device:
return self._device

if self._supports_presets:
presets = await self.request("/presets.json")
if not presets:
if not (presets := await self.request("/presets.json")):
raise WLEDEmptyResponseError(
f"WLED device at {self.host} returned an empty API"
" response on presets update"
Expand All @@ -270,24 +269,21 @@ async def update(self, full_update: bool = False) -> Device:

# Handle legacy state and update in separate requests
if not self._supports_si_request:
info = await self.request("/json/info")
if not info:
if not (info := await self.request("/json/info")):
raise WLEDEmptyResponseError(
f"WLED device at {self.host} returned an empty API"
" response on info update"
)

state = await self.request("/json/state")
if not state:
if not (state := await self.request("/json/state")):
raise WLEDEmptyResponseError(
f"WLED device {self.host} returned an empty API"
" response on state update"
)
self._device.update_from_dict({"info": info, "state": state})
return self._device

state_info = await self.request("/json/si")
if not state_info:
if not (state_info := await self.request("/json/si")):
raise WLEDEmptyResponseError(
f"WLED device at {self.host} returned an empty API"
" response on state & info update"
Expand Down