code: def parse_reports(self, reports):
          
          violations_dict = defaultdict(list)
          for report in reports:
              xml_document = cElementTree.fromstring("".join(report))
              files = xml_document.findall(".//file")
              for file_tree in files:
                  for error in file_tree.findall('error'):
                      line_number = error.get('line')
                      error_str = "{}: {}".format(error.get('severity'),
                                                     error.get('message'))
                      violation = Violation(int(line_number), error_str)
                      filename = GitPathTool.relative_path(file_tree.get('name'))
                      violations_dict[filename].append(violation)
          return violations_dict
docs: Args:
              reports: list[str] - output from the report
          Return:
              A dict[Str:Violation]
              Violation is a simple named tuple Defined above