docs: def blame(self, rev='HEAD', committer=True, by='repository', ignore_globs=None, include_globs=None):
          """
          Returns the blame from the current HEAD of the repository as a DataFrame.  The DataFrame is grouped by committer
          name, so it will be the sum of all contributions to the repository by each committer. As with the commit history
          method, extensions and ignore_dirs parameters can be passed to exclude certain directories, or focus on certain
          file extensions. The DataFrame will have the columns:
  
           * committer
           * loc
  
          :param rev: (optional, default=HEAD) the specific revision to blame
          :param committer: (optional, default=True) true if committer should be reported, false if author
          :param by: (optional, default=repository) whether to group by repository or by file
          :param ignore_globs: (optional, default=None) a list of globs to ignore, default none excludes nothing
          :param include_globs: (optinal, default=None) a list of globs to include, default of None includes everything.
          :return: DataFrame
          """
  
          blames = []
          file_names = [x for x in self.repo.git.log(pretty='format:', name_only=True, diff_filter='A').split('\n') if
                        x.strip() != '']
          for file in self.__check_extension({x: x for x in file_names}, ignore_globs=ignore_globs,
                                             include_globs=include_globs).keys():
              try:
                  blames.append(
                      [x + [str(file).replace(self.git_dir + '/', '')] for x in
                       self.repo.blame(rev, str(file).replace(self.git_dir + '/', ''))]
                  )
              except GitCommandError:
                  pass
  
          blames = [item for sublist in blames for item in sublist]
          if committer:
              if by == 'repository':
                  blames = DataFrame(
                      [[x[0].committer.name, len(x[1])] for x in blames],
                      columns=['committer', 'loc']
                  ).groupby('committer').agg({'loc': np.sum})
              elif by == 'file':
                  blames = DataFrame(
                      [[x[0].committer.name, len(x[1]), x[2]] for x in blames],
                      columns=['committer', 'loc', 'file']
                  ).groupby(['committer', 'file']).agg({'loc': np.sum})
          else:
              if by == 'repository':
                  blames = DataFrame(
                      [[x[0].author.name, len(x[1])] for x in blames],
                      columns=['author', 'loc']
                  ).groupby('author').agg({'loc': np.sum})
              elif by == 'file':
                  blames = DataFrame(
                      [[x[0].author.name, len(x[1]), x[2]] for x in blames],
                      columns=['author', 'loc', 'file']
                  ).groupby(['author', 'file']).agg({'loc': np.sum})
  
          return blames