diff --git a/artiq/language/environment.py b/artiq/language/environment.py index c61a1fa79..35654aab4 100644 --- a/artiq/language/environment.py +++ b/artiq/language/environment.py @@ -149,13 +149,14 @@ class HasEnvironment: """Provides methods to manage the environment of an experiment (devices, parameters, results, arguments).""" def __init__(self, device_mgr=None, dataset_mgr=None, *, parent=None, - default_arg_none=False, **kwargs): + default_arg_none=False, enable_processors=False, **kwargs): self.requested_args = OrderedDict() self.__device_mgr = device_mgr self.__dataset_mgr = dataset_mgr self.__parent = parent self.__default_arg_none = default_arg_none + self.__enable_processors = enable_processors self.__kwargs = kwargs self.__in_build = True @@ -214,7 +215,10 @@ class HasEnvironment: return None else: raise - return processor.process(argval) + if self.__enable_processors: + return processor.process(argval) + else: + return argval def setattr_argument(self, key, processor=None, group=None): """Sets an argument as attribute. The names of the argument and of the diff --git a/artiq/master/worker_impl.py b/artiq/master/worker_impl.py index e7f3ba8a1..2c06f1220 100644 --- a/artiq/master/worker_impl.py +++ b/artiq/master/worker_impl.py @@ -139,7 +139,8 @@ def examine(device_mgr, dataset_mgr, file): if name[-1] == ".": name = name[:-1] exp_inst = exp_class(device_mgr, dataset_mgr, - default_arg_none=True) + default_arg_none=True, + enable_processors=True) arginfo = OrderedDict( (k, (proc.describe(), group)) for k, (proc, group) in exp_inst.requested_args.items()) @@ -209,7 +210,8 @@ def main(): device_mgr.virtual_devices["scheduler"].set_run_info( rid, obj["pipeline_name"], expid, obj["priority"]) exp_inst = exp( - device_mgr, dataset_mgr, **expid["arguments"]) + device_mgr, dataset_mgr, enable_processors=True, + **expid["arguments"]) put_object({"action": "completed"}) elif action == "prepare": exp_inst.prepare()