tweaked types

This commit is contained in:
John Lancaster
2024-04-02 22:03:11 -05:00
parent f64605b831
commit 01af9e106c

View File

@@ -1,9 +1,8 @@
import json
import logging import logging
import sys import sys
from enum import Enum from enum import Enum
from pathlib import Path from pathlib import Path
from typing import Annotated, Literal, Optional, TypedDict from typing import Literal, Optional
from appdaemon.plugins.hass.hassapi import Hass from appdaemon.plugins.hass.hassapi import Hass
from appdaemon.plugins.mqtt.mqttapi import Mqtt from appdaemon.plugins.mqtt.mqttapi import Mqtt
@@ -59,7 +58,7 @@ class MQTTResponse(BaseModel):
class CallbackEntry(BaseModel): class CallbackEntry(BaseModel):
entity: str entity: str
event: Optional[str] = None event: Optional[str] = None
type: str type: Literal['state', 'event']
kwargs: str kwargs: str
function: str function: str
name: str name: str
@@ -67,10 +66,6 @@ class CallbackEntry(BaseModel):
pin_thread: int pin_thread: int
class Callbacks(TypedDict):
pass
Callbacks = dict[str, dict[str, CallbackEntry]] Callbacks = dict[str, dict[str, CallbackEntry]]
@@ -94,10 +89,11 @@ class AqaraCube(Hass, Mqtt):
def callbacks(self) -> dict[str, CallbackEntry]: def callbacks(self) -> dict[str, CallbackEntry]:
data = TypeAdapter(Callbacks).validate_python(self.get_callback_entries()) data = TypeAdapter(Callbacks).validate_python(self.get_callback_entries())
name: str = self.name
try: try:
return data[self.name] return data[name]
except KeyError: except KeyError:
return [] return
def handle_event(self, event_name, data, cb_args): def handle_event(self, event_name, data, cb_args):
data = MQTTResponse.model_validate(data) data = MQTTResponse.model_validate(data)