code: def get_file_annotate(self, path):
          
  
          fctx = self._get_filectx(path)
          for i, annotate_data in enumerate(fctx.annotate()):
              ln_no = i + 1
              sha = hex(annotate_data[0].node())
              yield (ln_no, sha, lambda: self.repository.get_changeset(sha), annotate_data[1],)
docs: Returns a generator of four element tuples with
              lineno, sha, changeset lazy loader and line