docs: def file_owner(self, rev, filename, committer=True):
          """
          Returns the owner (by majority blame) of a given file in a given rev. Returns the committers' name.
  
          :param rev:
          :param filename:
          :param committer:
          """
          try:
              if committer:
                  cm = 'committer'
              else:
                  cm = 'author'
  
              blame = self.repo.blame(rev, os.path.join(self.git_dir, filename))
              blame = DataFrame([[x[0].committer.name, len(x[1])] for x in blame], columns=[cm, 'loc']).groupby(cm).agg(
                  {'loc': np.sum})
              if blame.shape[0] > 0:
                  return blame['loc'].idxmax()
              else:
                  return None
          except (GitCommandError, KeyError):
              if self.verbose:
                  print('Couldn\'t Calcualte File Owner for %s' % (rev,))
              return None