From 8372c75e304c4456f78ff788afbee6fa9126aee2 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 | 4 +++- pyhon/commands.py | 12 ++++++------ pyhon/helper.py | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/pyhon/appliance.py b/pyhon/appliance.py index d54df40..90a7f12 100644 --- a/pyhon/appliance.py +++ b/pyhon/appliance.py @@ -175,7 +175,9 @@ 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":