def print_summary(output, same, only_in_left, only_in_right, different, left_name, right_name): summary=[] if not 'left' in left_name: left_name += ' (left)' if not 'right' in right_name: right_name += ' (right)' summary.append("No differences for:") if len(same) > 0: summary.append("\n".join([" * '%s'" % x.path for x in same])) summary.append("Only in %s:" % left_name) for only_l in only_in_left: summary.append(" * '%s'" % only_l.path) summary.append("Only in %s:" % right_name) for only_r in only_in_right: summary.append(" * '%s'" % only_r.path) summary.append("Different:") for d in different: summary.append(" * '%s' -- %s vs %s" % (d[0].path, left_name, right_name)) diffs = project_differences(d[0], d[1]) for d in diffs['different'].keys(): summary.append(" * %s: '%s' vs '%s'" % (d, diffs['different'][d]['left'], diffs['different'][d]['right'])) for s in [x for x in diffs['same'].keys() if x != 'path']: summary.append(" * %s: %s is the same" % (s, diffs['same'][s])) print >> output, "\n".join(summary)
def print_json_summary(output, same, only_in_left, only_in_right, different, left_name, right_name): diffs = {'left_name': left_name, 'right_name': right_name, 'same': same, 'only_in_left': only_in_left, 'only_in_right': only_in_right} diffs['differences'] = {} for l,r in different: diffs['differences'][l.path] = project_differences(l,r) print json.dumps(diffs, cls=ProjectJSONEncoder, indent=2, sort_keys=True)