Skip to content

Commit

Permalink
environment,dashboard: generalize multiple defaults, fix HDF5 argumen…
Browse files Browse the repository at this point in the history
…t load
sbourdeauducq committed May 24, 2016
1 parent 43081b4 commit b3e55b7
Showing 4 changed files with 14 additions and 3 deletions.
7 changes: 6 additions & 1 deletion artiq/dashboard/experiments.py
Original file line number Diff line number Diff line change
@@ -331,7 +331,12 @@ async def _recompute_arguments_task(self, overrides=dict()):
self.expurl, exc_info=True)
return
for k, v in overrides.items():
arginfo[k][0]["default"] = v
# Some values (e.g. scans) may have multiple defaults in a list
if ("default" in arginfo[k][0]
and isinstance(arginfo[k][0]["default"], list)):
arginfo[k][0]["default"].insert(0, v)
else:
arginfo[k][0]["default"] = v
self.manager.initialize_submission_arguments(self.expurl, arginfo)

self.argeditor.deleteLater()
4 changes: 3 additions & 1 deletion artiq/gui/entries.py
Original file line number Diff line number Diff line change
@@ -274,8 +274,10 @@ def default_state(procdesc):
}
if "default" in procdesc:
defaults = procdesc["default"]
if not isinstance(defaults, list):
defaults = [defaults]
state["selected"] = defaults[0]["ty"]
for default in defaults:
for default in reversed(defaults):
ty = default["ty"]
if ty == "NoScan":
state[ty]["value"] = default["value"]
4 changes: 4 additions & 0 deletions artiq/language/environment.py
Original file line number Diff line number Diff line change
@@ -23,6 +23,10 @@ class DefaultMissing(Exception):

class _SimpleArgProcessor:
def __init__(self, default=NoDefault):
# If default is a list, it means multiple defaults are specified, with
# decreasing priority.
if isinstance(default, list):
raise NotImplementedError
if default is not NoDefault:
self.default_value = default

2 changes: 1 addition & 1 deletion artiq/language/scan.py
Original file line number Diff line number Diff line change
@@ -166,7 +166,7 @@ def __init__(self, default=NoDefault, unit="", scale=1.0,
if global_step is None:
global_step = scale/10.0
if default is not NoDefault:
if not isinstance(default, (tuple, list)):
if not isinstance(default, list):
default = [default]
self.default_values = default
self.unit = unit

0 comments on commit b3e55b7

Please sign in to comment.