code: def get_task(
              self,
              taskName):
          
  
          if taskName[:2] != "- ":
              taskName = "- " + taskName
          task = None
          try:
              self.refresh
          except:
              pass
  
          # SEARCH TASKS
          for t in self.tasks:
              if t.title.lower() == taskName.lower() and task == None:
                  task = t
                  break
  
          # SEARCH TASK CONTENTS
          if task == None:
              for t in self.tasks:
                  task = t.get_task(taskName)
                  if task:
                      break
  
          # SEARCH PROJECT CONTENTS
          if task == None and "<Task " not in self.__repr__():
              for p in self.projects:
                  task = p.get_task(taskName)
                  if task:
                      break
  
          return task
docs: *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")