def _run_tasks(self, task_list, interactive): """ Runs the tasks given on the command line. :param task_list: a task name or a list of task names to run :type task_list: str|list :param interactive: if asserted do not run the tasks in parallel :type interactive: bool :return: None """ if not is_sequence(task_list): task_list = [task_list] verified_task_list = self._verified_tasks(task_list) debug("task_list: {tasks}".format(tasks=task_list)) debug("verified_task_list: {tasks}".format(tasks=verified_task_list)) if not verified_task_list: raise ValueError('No tasks given. Run "herring -T" to see available tasks.') TaskWithArgs.argv = list([arg for arg in task_list if arg not in verified_task_list]) def task_lookup(task_name_): info("Running: {name} ({description})".format(name=task_name_, description=HerringTasks[task_name_]['description'])) TaskWithArgs.arg_prompt = HerringTasks[task_name_]['arg_prompt'] try: return HerringTasks[task_name_]['task'] except Exception as ex: error(str(ex)) for task_name_list in self._resolve_dependencies(verified_task_list, HerringTasks): if interactive: for task_name in task_name_list: task_lookup(task_name)() else: parallelize_process(*[task_lookup(task_name) for task_name in task_name_list])
def run_tasks(task_list): """ Runs the tasks given on the command line. :param task_list: a task name or a list of task names to run :type task_list: str|list :return: None """ if not is_sequence(task_list): task_list = [task_list] verified_task_list = HerringApp._verified_tasks(task_list) debug("task_list: {tasks}".format(tasks=task_list)) debug("verified_task_list: {tasks}".format(tasks=verified_task_list)) if not verified_task_list: raise ValueError('No tasks given. Run "herring -T" to see available tasks.') TaskWithArgs.argv = list([arg for arg in task_list if arg not in verified_task_list]) for task_name in HerringApp._resolve_dependencies(verified_task_list, HerringTasks): info("Running: {name} ({description})".format(name=task_name, description=HerringTasks[task_name]['description'])) TaskWithArgs.arg_prompt = HerringTasks[task_name]['arg_prompt'] HerringTasks[task_name]['task']()
def test_tuple_sequence(): assert is_sequence((1, 2, 3))
def test_list_sequence(): assert is_sequence(['abcd'])
def test_string_sequence(): assert not is_sequence('abcd')