code: def examine(self):
          
          if self._changes:
              return self._changes.pop()
  
          # clean filepath
          self.filepath = None
          delays = set()
          for path in self._tasks:
              item = self._tasks[path]
              if self.is_changed(path, item['ignore']):
                  func = item['func']
                  delay = item['delay']
                  if delay and isinstance(delay, float):
                      delays.add(delay)
                  if func:
                      name = getattr(func, 'name', None)
                      if not name:
                          name = getattr(func, '__name__', 'anonymous')
                      logger.info(
                          "Running task: {} (delay: {})".format(name, delay))
                      func()
  
          if delays:
              delay = max(delays)
          else:
              delay = None
          return self.filepath, delay
docs: Check if there are changes, if true, run the given task.