code: def _parse_diff_str(self, diff_str):
          
  
          # Create a dict to hold results
          diff_dict = dict()
  
          # Parse the diff string into sections by source file
          sections_dict = self._parse_source_sections(diff_str)
          for (src_path, diff_lines) in sections_dict.items():
  
              # Parse the hunk information for the source file
              # to determine lines changed for the source file
              diff_dict[src_path] = self._parse_lines(diff_lines)
  
          return diff_dict
docs: Parse the output of `git diff` into a dictionary of the form:
  
              { SRC_PATH: (ADDED_LINES, DELETED_LINES) }
  
          where `ADDED_LINES` and `DELETED_LINES` are lists of line
          numbers added/deleted respectively.
  
          If the output could not be parsed, raises a GitDiffError.