From 4d19742dbf37c2f4827e9f00b5ecc168c5afbcbc Mon Sep 17 00:00:00 2001 From: "Sergey V. DUDANOV" Date: Sun, 2 Jun 2024 09:45:12 +0400 Subject: [PATCH] Release v0.2.3: added living properties. --- pyftms/client/manager.py | 14 ++++++++++++++ pyproject.toml | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/pyftms/client/manager.py b/pyftms/client/manager.py index 1b58c1d49a..ff3d13cede 100644 --- a/pyftms/client/manager.py +++ b/pyftms/client/manager.py @@ -24,6 +24,9 @@ class PropertiesManager: _properties: UpdateEventData """Properties dictonary""" + _live_properties: set[str] + """Properties dictonary""" + _settings: SetupEventData """Properties dictonary""" @@ -33,6 +36,7 @@ class PropertiesManager: def __init__(self, on_ftms_event: FtmsCallback | None = None) -> None: self._cb = on_ftms_event self._properties = {} + self._live_properties = set() self._settings = {} def set_callback(self, cb: FtmsCallback): @@ -42,6 +46,7 @@ def _on_event(self, e: FtmsEvents) -> None: """Real-time training data update handler.""" if e.event_id == "update": self._properties |= e.event_data + self._live_properties.update(k for k, v in e.event_data.items() if v) elif e.event_id == "setup": self._settings |= e.event_data elif e.event_id == "training_status": @@ -60,6 +65,15 @@ def properties(self) -> UpdateEventData: """Read-only updateable properties mapping.""" return cast(UpdateEventData, MappingProxyType(self._properties)) + @property + def live_properties(self) -> tuple[str, ...]: + """ + Living properties. + + Properties that had a value other than zero at least once. + """ + return tuple(self._live_properties) + @property def settings(self) -> SetupEventData: """Read-only updateable settings mapping.""" diff --git a/pyproject.toml b/pyproject.toml index e6aee43099..c4437c6c9f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pyftms" -version = "0.2.2" +version = "0.2.3" description = "PyFTMS - Python Fitness Machine Service client library." authors = ["Sergey V. DUDANOV "] readme = "README.md"