def __init__(self, workdir='.', backup=False, prev_task=None, prev_folder=None, link_prev_files=None, copy_prev_files=None, share_folder=None, link_share_files=None, copy_share_files=None, link_abs_files=None, copy_abs_files=None): # workdir has to be relative in order to be chained # prev_task is dereferenced to folder dynamically. # folders are absolute. super().__init__(workdir) self.backup = backup assert prev_task is None or prev_folder is None self.prev_task = prev_task self.prev_folder = get_abs_path(prev_folder) self.share_folder = get_abs_path(share_folder) self.link_prev_files = check_list(link_prev_files) self.copy_prev_files = check_list(copy_prev_files) self.link_share_files = check_list(link_share_files) self.copy_share_files = check_list(copy_share_files) self.link_abs_files = check_list(link_abs_files) self.copy_abs_files = check_list(copy_abs_files)
def set_record_file(self, record_file): self.record_file = get_abs_path(record_file) for task in self.child_tasks: if isinstance(task, Workflow): task.set_record_file(record_file)
def set_init_folder(self, init_folder): start = self.child_tasks[0] while isinstance(start, Workflow): start = start.child_tasks[0] start.set_prev_folder(get_abs_path(init_folder))
def __init__(self, child_tasks, workdir='.', record_file=None): super().__init__(workdir) self.record_file = get_abs_path(record_file) self.child_tasks = [self.make_child(task) for task in child_tasks] self.postmod_hook()