def submit(process_class, _jobs_store=None, **kwargs): assert not util.is_workfunction(process_class),\ "You cannot submit a workfunction to the daemon" if _jobs_store is None: _jobs_store = aiida.work.persistence.get_default() pid = queue_up(process_class, kwargs, _jobs_store) return RunningInfo(RunningType.PROCESS, pid)
def run(process_class, *args, **inputs): """ Synchronously (i.e. blocking) run a workfunction or process. :param process_class: The process class or workfunction :param _attributes: Optional attributes (only for process) :param args: Positional arguments for a workfunction :param inputs: The list of inputs """ if util.is_workfunction(process_class): return process_class(*args, **inputs) elif issubclass(process_class, Process): return_pid = inputs.pop('_return_pid', False) fut = serial_engine.submit(process_class, inputs) result = fut.result() if return_pid: return result, fut.pid else: return result else: raise ValueError("Unsupported type supplied for process_class.")
def async (process_class, *args, **kwargs): if util.is_workfunction(process_class): kwargs['__async'] = True return process_class(*args, **kwargs) elif issubclass(process_class, Process): return parallel_engine.submit(process_class, inputs=kwargs)