tweaked types
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user