def help(self, taskname=None):
if not taskname:<EOL><INDENT>print(inspect.getdoc(self._tasks))<EOL>print()<EOL>print('<STR_LIT>')<EOL>print()<EOL>for task in self.get_tasks():<EOL><INDENT>self.print_task_help(task[<NUM_LIT:1>], task[<NUM_LIT:0>])<EOL><DEDENT><DEDENT>else:<EOL><INDENT>try:<EOL><INDENT>task = self.get_task(taskname)<EOL>self.print_task_help(task, task.__name__)<EOL><DEDENT>except TaskNotFound:<EOL><INDENT>print('<STR_LIT>' % taskname)<EOL><DEDENT><DEDENT>
List tasks or provide help for specific task
:param taskname: if supplied, help for this specific task is displayed.
    Otherwise, displays overview of available tasks.
:return: None