diff --git a/artiq/frontend/artiq_compile.py b/artiq/frontend/artiq_compile.py index 1609971e0..918a58c65 100755 --- a/artiq/frontend/artiq_compile.py +++ b/artiq/frontend/artiq_compile.py @@ -53,6 +53,8 @@ def main(): arguments = parse_arguments(args.arguments) argument_mgr = ProcessArgumentManager(arguments) exp_inst = exp((device_mgr, dataset_mgr, argument_mgr, {})) + argument_mgr.check_unprocessed_arguments() + if not hasattr(exp.run, "artiq_embedded"): raise ValueError("Experiment entry point must be a kernel") diff --git a/artiq/frontend/artiq_run.py b/artiq/frontend/artiq_run.py index 21baf3f05..c3d548c26 100755 --- a/artiq/frontend/artiq_run.py +++ b/artiq/frontend/artiq_run.py @@ -184,7 +184,9 @@ def _build_experiment(device_mgr, dataset_mgr, args): "arguments": arguments } device_mgr.virtual_devices["scheduler"].expid = expid - return get_experiment(module, args.class_name)(managers) + exp_inst = get_experiment(module, args.class_name)(managers) + argument_mgr.check_unprocessed_arguments() + return exp_inst def run(with_file=False): diff --git a/artiq/language/environment.py b/artiq/language/environment.py index 1147e2333..d3ccaf77d 100644 --- a/artiq/language/environment.py +++ b/artiq/language/environment.py @@ -209,8 +209,6 @@ class TraceArgumentManager: self.requested_args[key] = processor, group, tooltip return None - def check_unprocessed_arguments(self): - pass class ProcessArgumentManager: def __init__(self, unprocessed_arguments): @@ -252,8 +250,6 @@ class HasEnvironment: self.__in_build = True self.build(*args, **kwargs) self.__in_build = False - if self.__argument_mgr is not None: - self.__argument_mgr.check_unprocessed_arguments() def register_child(self, child): self.children.append(child) diff --git a/artiq/master/worker_impl.py b/artiq/master/worker_impl.py index 33d34ddf8..45c7308c0 100644 --- a/artiq/master/worker_impl.py +++ b/artiq/master/worker_impl.py @@ -333,6 +333,7 @@ def main(): os.chdir(dirname) argument_mgr = ProcessArgumentManager(expid["arguments"]) exp_inst = exp((device_mgr, dataset_mgr, argument_mgr, {})) + argument_mgr.check_unprocessed_arguments() put_completed() elif action == "prepare": exp_inst.prepare()