def __iter__(self): while True: param_sweep = generate_parameter_sweep(self.params) _params = param_sweep[0] if param_sweep else {} run_args = RunArgs( simulation=0, timesteps=1, run=0, subset=0, initial_state=copy.deepcopy(self.state), state_update_blocks=self.state_update_blocks, parameters=_params, deepcopy=self._deepcopy, drop_substeps=self._drop_substeps, ) result, exception = _single_run_wrapper( (run_args, self._raise_exceptions)) if exception: self.exceptions.append(exception) self.substeps = result.pop() self.state = self.substeps[-1] if self.substeps else self.state yield self
def execute_runs(self): result = [ core._single_run_wrapper((config, self.engine.raise_exceptions)) for config in self.engine.run_generator ] return result
def _proxy_single_run(args): return core._single_run_wrapper(args)