def write_issue_counts(basename, dir, issues): if len(issues) == 0: return with open(os.path.join(dir, basename + '-daycounts.csv'), 'w') as csv_file: writer = util.Utf8CsvDictWriter(csv_file, ['day', 'status', 'count']) #TODO: prettify garble, probably want to create a generator for the days transitions, known_statuses = all_transitions_and_known_statuses( issues) issue_counts = {s: 0 for s in known_statuses} one_day = datetime.timedelta(days=1) day = parse_iso(transitions[0]['when']) itr = iter(transitions) line = itr.next() while day <= parse_iso(transitions[-1]['when']): while parse_iso(line['when']) < day: issue_counts[line['from_status']] -= 1 issue_counts[line['to_status']] += 1 line = itr.next() rows = [{ 'day': day.isoformat(), 'status': k, 'count': v } for k, v in issue_counts.items() if k != None] for row in rows: writer.writerow(row) day += one_day
def write_issues(basename, dir, issues): if len(issues) == 0: return with open(os.path.join(dir, basename + '-issues.csv'), 'w') as csv_file: writer = util.Utf8CsvDictWriter(csv_file, issue_fields(issues[0]).keys()) for issue in issues: writer.writerow(issue_fields(issue))
def write_transitions(basename, dir, issues): if len(issues) == 0: return with open(os.path.join(dir, basename + '-transitions.csv'), 'w') as csv_file: row = issue_fields(issues[0]) row.update(issues[0]['__transitions'][0]) writer = util.Utf8CsvDictWriter(csv_file, row.keys()) for issue in issues: row = issue_fields(issue) for transition in issue['__transitions']: row.update(transition) writer.writerow(row)