summaryrefslogtreecommitdiff
path: root/core/profile.py
diff options
context:
space:
mode:
authorChristian Kolset <christian.kolset@gmail.com>2026-06-09 23:18:43 -0600
committerChristian Kolset <christian.kolset@gmail.com>2026-06-09 23:18:43 -0600
commit91b0b613f0b58498315ef91f6a541dd1089b88de (patch)
tree65b378d6ad2706ac1e29a7e7888c78770d4c945a /core/profile.py
parentd396692de571445537e617ac31627d7bd7ab84aa (diff)
Derived channels: signal display names as vars, auto-update template code, None op
- Variable names derived from signal display name (e.g. "Acceleration X" → acceleration_x) instead of raw channel ID; all auto-names lowercase with underscores - Template code auto-updates x[0]/x[1] refs to named vars as sources are added/changed; stops updating once user edits the code manually - Derivative wrt-channel mode uses separate template with x[1] substituted to channel var - Added "None" passthrough operation (result = x[0]) - source_names persisted in .labdaq profiles Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'core/profile.py')
-rw-r--r--core/profile.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/core/profile.py b/core/profile.py
index 16c923f..d3c7e3a 100644
--- a/core/profile.py
+++ b/core/profile.py
@@ -197,12 +197,13 @@ class ProfileManager:
"unit": dc.unit,
"color": dc.color,
"kind": dc.kind,
- "sources": [list(s) for s in dc.sources],
- "expression": dc.expression,
- "script": dc.script,
- "params": {k: v for k, v in dc.params.items()
- if not k.startswith("_")},
- "enabled": dc.enabled,
+ "sources": [list(s) for s in dc.sources],
+ "source_names": list(dc.source_names),
+ "expression": dc.expression,
+ "script": dc.script,
+ "params": {k: v for k, v in dc.params.items()
+ if not k.startswith("_")},
+ "enabled": dc.enabled,
})
# Plot layout
@@ -345,6 +346,7 @@ class ProfileManager:
color=dd.get("color", "#f72585"),
kind=dd.get("kind", "expression"),
sources=sources,
+ source_names=dd.get("source_names", []),
expression=dd.get("expression", ""),
script=dd.get("script", ""),
params=dd.get("params", {}),