From e887371becccb3a1cf1d1ab4d70ef20feb7ff399 Mon Sep 17 00:00:00 2001 From: Andre Basche Date: Sun, 16 Apr 2023 03:29:28 +0200 Subject: [PATCH] expose ancillary parameter in settings --- pyhon/appliance.py | 8 ++++---- pyhon/commands.py | 12 ++++++------ pyhon/helper.py | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/pyhon/appliance.py b/pyhon/appliance.py index d54df40..ce89187 100644 --- a/pyhon/appliance.py +++ b/pyhon/appliance.py @@ -13,7 +13,7 @@ if TYPE_CHECKING: class HonAppliance: def __init__( - self, api: Optional["HonAPI"], info: Dict[str, Any], zone: int = 0 + self, api: Optional["HonAPI"], info: Dict[str, Any], zone: int = 0 ) -> None: if attributes := info.get("attributes"): info["attributes"] = {v["parName"]: v["parValue"] for v in attributes} @@ -129,8 +129,8 @@ class HonAppliance: command = self.commands[name] for key, data in command.settings.items(): if ( - not isinstance(data, HonParameterFixed) - and parameters.get(key) is not None + not isinstance(data, HonParameterFixed) + and parameters.get(key) is not None ): with suppress(ValueError): data.value = parameters.get(key) @@ -175,7 +175,7 @@ class HonAppliance: def parameters(self): result = {} for name, command in self._commands.items(): - for key, parameter in command.parameters.items(): + for key, parameter in (command.parameters | command.ancillary_parameters).items(): result.setdefault(name, {})[key] = parameter.value return result diff --git a/pyhon/commands.py b/pyhon/commands.py index 03f70d0..33487a3 100644 --- a/pyhon/commands.py +++ b/pyhon/commands.py @@ -58,11 +58,8 @@ class HonCommand: return self._parameters @property - def ancillary_parameters(self) -> Dict[str, str | float]: - return { - key: parameter.value - for key, parameter in self._ancillary_parameters.items() - } + def ancillary_parameters(self) -> Dict[str, HonParameter]: + return self._ancillary_parameters async def send(self) -> bool: parameters = { @@ -90,7 +87,9 @@ class HonCommand: if command is None: command = self keys = [] - for key, parameter in command._parameters.items(): + for key, parameter in ( + command._parameters | command._ancillary_parameters + ).items(): if isinstance(parameter, HonParameterFixed): continue if key not in keys: @@ -115,4 +114,5 @@ class HonCommand: s: param for s in self.setting_keys if (param := self._parameters.get(s)) is not None + or (param := self._ancillary_parameters.get(s)) is not None } diff --git a/pyhon/helper.py b/pyhon/helper.py index d126b91..c820dd1 100644 --- a/pyhon/helper.py +++ b/pyhon/helper.py @@ -49,7 +49,7 @@ def create_command(commands, concat=False): for name, command in commands.items(): if not concat: result[name] = {} - for parameter, data in command.parameters.items(): + for parameter, data in command.settings.items(): if data.typology == "enum": value = data.values elif data.typology == "range":