docs: def descendents(self, method=None, state=None):
          """
          Find descendant tasks, optionally filtered by method and/or state.
  
          :param method: (optional) filter for tasks, eg. "buildArch".
          :param state: (optional) filter for tasks, eg. task_states.OPEN.
          :returns: deferred that when fired returns a list of Tasks.
          """
          subtasks = yield self.connection.getTaskDescendents(self.id)
          if method:
              subtasks = [t for t in subtasks if t.method == method]
          if state:
              subtasks = [t for t in subtasks if t.state == state]
          defer.returnValue(subtasks)