Example #1
0
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)
Example #2
0
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()