def main(): args = parse_args() table_cache = mmcv.load(args.table_cache) output_dir = args.out writer = MarkdownTableWriter() writer.headers = [ 'Method', 'Backbone', 'Crop Size', 'Lr schd', 'Mem (GB)', 'Inf time (fps)', 'mIoU', 'mIoU(ms+flip)', 'download' ] writer.margin = 1 writer.align_list = [Align.CENTER] * len(writer.headers) dataset_maps = { 'cityscapes': 'Cityscapes', 'ade20k': 'ADE20K', 'voc12aug': 'Pascal VOC 2012 + Aug' } for directory in table_cache: for dataset in table_cache[directory]: table = table_cache[directory][dataset][0] writer.table_name = dataset_maps[dataset] writer.value_matrix = table for i in range(len(table)): if table[i][-4] != '-': table[i][-4] = f'{table[i][-4]:.2f}' mmcv.mkdir_or_exist(osp.join(output_dir, directory)) writer.dump(osp.join(output_dir, directory, f'README_{dataset}.md')) with open(osp.join(output_dir, directory, 'README.md'), 'w') as dst_f: for dataset in dataset_maps: dataset_md_file = osp.join(output_dir, directory, f'README_{dataset}.md') with open(dataset_md_file) as src_f: for line in src_f: dst_f.write(line) dst_f.write('\n') os.remove(dataset_md_file)
def main(): parser = argparse.ArgumentParser( description=__doc__, formatter_class=argparse.ArgumentDefaultsHelpFormatter) parser.add_argument("-i", "--inspec", default="macos.json", help="Input file spec") args = parser.parse_args() new_rows = [] darwin_downloads = {} files = glob.glob(args.inspec) files = sorted(files) if len(files) == 0: sys.exit("No files matching " + args.inspec) for f in files: print(f) with open(f) as json_data: d = json.load(json_data) # pprint(d) for row in d["rows"]: # pprint(row) # print(row["system_name"]) if row["system_name"] != "Darwin": continue distro_version = row["distro_version"] download_count = row["download_count"] if distro_version == "None": darwin_downloads[distro_version] = download_count continue x, y, *rest = distro_version.split(".") xy = f"'{x}.{y}'" # print(distro_version) # print(x, y) # print(xy) try: darwin_downloads[xy] += download_count except KeyError: darwin_downloads[xy] = download_count # pprint(darwin_downloads) # Sort by version number orderedKeys = sorted(darwin_downloads, key=LooseVersion) darwin_downloads = OrderedDict( (key, darwin_downloads[key]) for key in orderedKeys) darwin_total = sum(darwin_downloads.values()) # print(darwin_total) for version in darwin_downloads: percent = darwin_downloads[version] / darwin_total * 100 row = { "system_name": "Darwin", "distro_version": version, "download_count": darwin_downloads[version], "percent": f"{round(percent, 2):.2f}%", } new_rows.append(row) # pprint(new_rows) fieldnames = ["system_name", "distro_version", "percent", "download_count"] with open("macos.csv", "w+") as output_file: dict_writer = csv.DictWriter(output_file, fieldnames=fieldnames) dict_writer.writeheader() dict_writer.writerows(new_rows) writer = MarkdownTableWriter() writer.header_list = fieldnames writer.value_matrix = new_rows writer.align_list = [Align.AUTO, Align.AUTO, Align.RIGHT, Align.AUTO] writer.style_list = [None, None, None, Style(thousand_separator=",")] writer.margin = 1 writer.write_table()