diff --git a/run-exp.py b/run-exp.py index 35f15b6ed8b7e221d6f94bb7372719ed7bd2cf7f..16458746867d105a7703cb06d6dfa336de78d8bc 100755 --- a/run-exp.py +++ b/run-exp.py @@ -75,8 +75,22 @@ class Task: return self._work_dir def run(self, variables): - parameters = [p.format(**variables) for p in self._parameters] - args = [self._base_command] + parameters + args = [self._base_command] + + for p in self._parameters: + if not isinstance(p, dict): + args.append(p.format(**variables)) + continue + + assert "value" in p, "An extended paramter has to contain a value field" + + if "if-variable" in p: + v = p["if-variable"] + + if v not in variables.keys() or (isinstance(variables[v], bool) and not variables[v]): + continue # skip + + args.append(p["value"].format(**variables)) # print() # print(f"pushd {self._work_dir}")