Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def from_dict(data: Dict[str, Any]) -> Info:
"""Return Info object from WLED API response."""
return Info(
architecture=data.get("arch", "Unknown"),
arduino_core_version=data.get("core", "Unknown").replace("_", "."),
brand=data.get("brand", "WLED"),
build_type=data.get("btype", "Unknown"),
effect_count=data.get("fxcount", 0),
free_heap=data.get("freeheap", 0),
leds=Leds.from_dict(data),
live_ip=data.get("lip", "Unknown"),
live_mode=data.get("lm", "Unknown"),
live=data.get("live", False),
mac_address=data.get("mac", ""),
name=data.get("name", "WLED Light"),
pallet_count=data.get("palcount", 0),
product=data.get("product", "DIY Light"),
udp_port=data.get("udpport", 0),
uptime=data.get("uptime", 0),
brightness=brightness,
nightlight=Nightlight.from_dict(data),
on=on,
playlist=data.get("pl", -1),
preset=data.get("ps", -1),
segments=segments,
sync=Sync.from_dict(data),
transition=data.get("transition", 0),
)
class Device:
"""Object holding all information of WLED."""
effects: List[Effect] = []
info: Info
palettes: List[Palette] = []
state: State
def __init__(self, data: dict):
"""Initialize an empty WLED device class."""
# Check if all elements are in the passed dict, else raise an Error
if any(
k not in data and data[k] is not None
for k in ["effects", "palettes", "info", "state"]
):
raise WLEDError("WLED data is incomplete, cannot construct device object")
self.update_from_dict(data)
def update_from_dict(self, data: dict) -> "Device":
"""Return Device object from WLED API response."""
if "effects" in data and data["effects"]: