code: def parse_diff(self, diff: str) -> Dict[str, List[Tuple[int, str]]]:
          
          lines = diff.split('\n')
          modified_lines = {'added': [], 'deleted': []}
  
          count_deletions = 0
          count_additions = 0
  
          for line in lines:
              line = line.rstrip()
              count_deletions += 1
              count_additions += 1
  
              if line.startswith('@@'):
                  count_deletions, count_additions = self._get_line_numbers(line)
  
              if line.startswith('-'):
                  modified_lines['deleted'].append((count_deletions, line[1:]))
                  count_additions -= 1
  
              if line.startswith('+'):
                  modified_lines['added'].append((count_additions, line[1:]))
                  count_deletions -= 1
  
              if line == r'\ No newline at end of file':
                  count_deletions -= 1
                  count_additions -= 1
  
          return modified_lines
docs: Given a diff, returns a dictionary with the added and deleted lines.
          The dictionary has 2 keys: "added" and "deleted", each containing the
          corresponding added or deleted lines. For both keys, the value is a
          list of Tuple (int, str), corresponding to (number of line in the file,
          actual line).
  
  
          :param str diff: diff of the commit
          :return: Dictionary