Skip to content

Commit

Permalink
allow task-creators to return a Task (apart from task-dict)
Browse files Browse the repository at this point in the history
  • Loading branch information
schettino72 committed Jan 14, 2015
1 parent 6618c1d commit 4e32bd3
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion doit/loader.py
Expand Up @@ -284,12 +284,19 @@ def generate_tasks(func_name, gen_result, gen_doc=None):
if isinstance(gen_result, dict):
return [_generate_task_from_return(func_name, gen_result, gen_doc)]

if isinstance(gen_result, Task):
return (gen_result,)

# a generator
if inspect.isgenerator(gen_result):
tasks = OrderedDict() # task_name: task
# the generator return subtasks as dictionaries
for task_dict, x_doc in flat_generator(gen_result, gen_doc):
_generate_task_from_yield(tasks, func_name, task_dict, x_doc)
if isinstance(task_dict, Task):
tasks[task_dict.name] = task_dict
else:
_generate_task_from_yield(tasks, func_name, task_dict, x_doc)


if tasks:
return list(six.itervalues(tasks))
Expand Down

0 comments on commit 4e32bd3

Please sign in to comment.