Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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))
Ejemplo n.º 3
0
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)