Last active
August 29, 2015 14:23
-
-
Save jwhitlock/657cddc8de86efee843b to your computer and use it in GitHub Desktop.
Calculate differences between two browsercompat issues counts, and format as MarkDown
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env python | |
| from __future__ import print_function | |
| import csv | |
| import sys | |
| if len(sys.argv) != 3: | |
| print("Usage: {} older_count.csv newer_count.csv".format(sys.argv[0])) | |
| sys.exit(0) | |
| def get_data(filename): | |
| data = [] | |
| with open(filename, 'rb') as older_file: | |
| reader = csv.reader(older_file) | |
| first = True | |
| for count, slug in reader: | |
| if first: | |
| first = False | |
| else: | |
| data.append((int(count), slug)) | |
| return data | |
| older = get_data(sys.argv[1]) | |
| newer = get_data(sys.argv[2]) | |
| by_count = [slug for count, slug in sorted(older, reverse=True)] | |
| older_by_slug = dict((slug, count) for count, slug in older) | |
| newer_by_slug = dict((slug, count) for count, slug in newer) | |
| ordered = [] | |
| slug_out = set() | |
| for slug in by_count: | |
| old_value = older_by_slug[slug] | |
| new_value = newer_by_slug.get(slug, 0) | |
| ordered.append((slug, old_value, new_value)) | |
| slug_out.add(slug) | |
| for slug, new_value in newer_by_slug.items(): | |
| if slug not in slug_out: | |
| old_value = 0 | |
| ordered.append((slug, old_value, new_value)) | |
| max_len = max([len(x) for x, _, __ in ordered]) | |
| print("{0:^{1}} | Old Count | New Count".format("Issue Slug", max_len)) | |
| print("{}-|-----------|----------".format("-" * max_len)) | |
| old_total = sum(count for count in older_by_slug.values()) | |
| new_total = sum(count for count in newer_by_slug.values()) | |
| print("{0:<{1}} | {2:>9} | {3:>9}".format( | |
| '**Total**', max_len, old_total, new_total)) | |
| for slug, oldc, newc in ordered: | |
| print("{0:<{1}} | {2:>9} | {3:>9}".format(slug, max_len, oldc, newc)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment