def ParseMultiple(self, stats, file_objects, knowledge_base):
    _ = knowledge_base

    # Collate files into path: contents dictionary.
    found_files = self._Combine(stats, file_objects)

    # Determine collected files and apply weighting.
    weights = [w for w in self.WEIGHTS if w.path in found_files]
    weights = sorted(weights, key=lambda x: x.weight)

    for _, path, handler in weights:
      contents = found_files[path]
      obj = handler(contents)

      complete, result = obj.Parse()
      if result is None:
        continue
      elif complete:
        yield rdf_protodict.Dict({
            'os_release': result.release,
            'os_major_version': result.major,
            'os_minor_version': result.minor})
        break
    else:
      # No successful parse.
      yield rdf_anomaly.Anomaly(type='PARSER_ANOMALY',
                                symptom='Unable to determine distribution.')
Parse the found release files.
dataset/ETHPy150Open google/grr/grr/parsers/linux_release_parser.py/LinuxReleaseParser.ParseMultiple