def get_task(<EOL>self,<EOL>taskName):
if taskName[:<NUM_LIT:2>] != "<STR_LIT>":<EOL><INDENT>taskName = "<STR_LIT>" + taskName<EOL><DEDENT>task = None<EOL>try:<EOL><INDENT>self.refresh<EOL><DEDENT>except:<EOL><INDENT>pass<EOL><DEDENT>for t in self.tasks:<EOL><INDENT>if t.title.lower() == taskName.lower() and task == None:<EOL><INDENT>task = t<EOL>break<EOL><DEDENT><DEDENT>if task == None:<EOL><INDENT>for t in self.tasks:<EOL><INDENT>task = t.get_task(taskName)<EOL>if task:<EOL><INDENT>break<EOL><DEDENT><DEDENT><DEDENT>if task == None and "<STR_LIT>" not in self.__repr__():<EOL><INDENT>for p in self.projects:<EOL><INDENT>task = p.get_task(taskName)<EOL>if task:<EOL><INDENT>break<EOL><DEDENT><DEDENT><DEDENT>return task<EOL>
*recursively scan this taskpaper object to find a descendant task by name*

        **Key Arguments:**
            - ``taskName`` -- the name, or title, of the task you want to return

        **Return:**
            - ``task`` -- the taskpaper task object you requested (or ``None`` if no task was matched)

        **Usage:**

            .. code-block:: python

                aTask = doc.get_task("cut the grass")