def main()

in onnxconverter_common/perfstats.py [0:0]


def main():
    args = get_args()
    entries = read_raw_entries(args.input)
    if args.type:
        entries = compute_op_type_entries(entries)
    elif args.node:
        entries = compute_node_entries(entries)
    elif args.step:
        entries = compute_step_entries(entries)

    exc_entries = []
    if args.query:
        exc_entries.extend(e for e in entries if not args.query.match(e))
        entries = [e for e in entries if args.query.match(e)]
    if args.limit >= 0:
        exc_entries.extend(entries[args.limit:])
        entries = entries[:args.limit]

    if args.type:
        col_widths = type_entry_col_widths
        headers = type_entry_headers
    elif args.node:
        col_widths = node_entry_col_widths
        headers = node_entry_headers
    elif args.step:
        col_widths = step_entry_col_widths
        headers = step_entry_headers
    elif args.raw:
        col_widths = raw_entry_col_widths
        headers = raw_entry_headers

    if args.output:
        with open(args.output, mode='w', newline='') as f:
            writer = csv.writer(f, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
            if not args.data_only:
                writer.writerow(headers)
            for entry in entries:
                writer.writerow(entry)
    else:
        printer = TablePrinter(col_widths)
        if not args.data_only:
            printer.print(headers)
            printer.print_divider()
        for entry in entries:
            printer.print(entry)