code: def get_commits_last_modified_lines(self, commit: Commit,
                                          modification: Modification = None) \
              -> Set[str]:
          
          buggy_commits = set()
  
          if modification is not None:
              modifications = [modification]
          else:
              modifications = commit.modifications
  
          for mod in modifications:
              path = mod.new_path
              if mod.change_type == ModificationType.RENAME or \
                      mod.change_type == ModificationType.DELETE:
                  path = mod.old_path
  
              deleted_lines = self.parse_diff(mod.diff)['deleted']
              try:
                  blame = self.git.blame(commit.hash + '^',
                                         '--', path).split('\n')
                  for num_line, line in deleted_lines:
                      if not self._useless_line(line.strip()):
                          buggy_commit = blame[num_line - 1].split(' ')[
                              0].replace('^', '')
                          buggy_commits.add(self.get_commit(buggy_commit).hash)
              except GitCommandError:
                  logger.debug(
                      "Could not found file %s in commit %s. Probably a double "
                      "rename!", mod.filename, commit.hash)
          return buggy_commits
docs: Given the Commit object, returns the set of commits that last
          "touched" the lines that are modified in the files included in the
          commit. It applies SZZ.
          The algorithm works as follow: (for every file in the commit)
  
          1- obtain the diff
  
          2- obtain the list of deleted lines
  
          3- blame the file and obtain the commits were those lines were added
  
          Can also be passed as parameter a single Modification, in this case
          only this file
          will be analyzed.
  
          :param Commit commit: the commit to analyze
          :param Modification modification: single modification to analyze
          :return: the set containing all the bug inducing commits