From a4cb72a3e5393423e7a9bbc3592ea2847da70e3e Mon Sep 17 00:00:00 2001 From: Pierre Schnizer Date: Fri, 30 Jan 2026 10:15:31 +0100 Subject: [PATCH 1/2] [TASK] currently fail if reference data is not available in the state cache --- src/accml_lib/core/bl/delta_backend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/accml_lib/core/bl/delta_backend.py b/src/accml_lib/core/bl/delta_backend.py index 5dd9fe9..13da0ca 100644 --- a/src/accml_lib/core/bl/delta_backend.py +++ b/src/accml_lib/core/bl/delta_backend.py @@ -112,5 +112,5 @@ def _calculate_delta_set(self, rcmd: ReadCommand, value): For overloading in derived classes e.g. for processing ophyd-async data """ ref = self.cache.get(rcmd, None) - assert ref is not None + assert ref is not None, f"No reference stored for {rcmd}" return value + ref From bc02206173f89d3dddb6c8043fd5b64affa8811d Mon Sep 17 00:00:00 2001 From: Pierre Schnizer Date: Fri, 30 Jan 2026 12:06:05 +0100 Subject: [PATCH 2/2] [TASK] reviewing delta backend --- src/accml_lib/core/bl/delta_backend.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/accml_lib/core/bl/delta_backend.py b/src/accml_lib/core/bl/delta_backend.py index 13da0ca..7688743 100644 --- a/src/accml_lib/core/bl/delta_backend.py +++ b/src/accml_lib/core/bl/delta_backend.py @@ -22,6 +22,9 @@ def __repr__(self): def clear(self): self.cache = dict() + def keys(self): + return self.cache.keys() + def get(self, id, default=None): """ Todo: @@ -66,10 +69,9 @@ async def read(self, dev_id: str, prop_id: str) -> object: if not flag: return await self.backend.read(dev_id=dev_id, prop_id=prop_id) r = await self.backend.read(dev_id=dev_id, prop_id=orig_prop_id) - rcmd = ReadCommand(id=dev_id, property=prop_id) + rcmd = ReadCommand(id=dev_id, property=orig_prop_id) ref = self.cache.get(rcmd, None) if ref is None: - rcmd = ReadCommand(id=dev_id, property=prop_id) self.cache.set(rcmd, r) # to get some zero of proper type return self._calculate_delta_read(rcmd, r) @@ -95,7 +97,7 @@ async def set(self, dev_id: str, prop_id: str, value: object): if not flag: return await self.backend.set(dev_id=dev_id, prop_id=prop_id, value=value) - rcmd = ReadCommand(id=dev_id, property=prop_id) + rcmd = ReadCommand(id=dev_id, property=orig_prop_id) ref = self.cache.get(rcmd, None) if not ref: r = await self.backend.read(dev_id=dev_id, prop_id=orig_prop_id)