def main()

in src/comparison.py [0:0]


def main():
    p = configargparse.ArgParser()
    p.add_argument('-d', '--directory', required=True, type=str, help='path to directory with results')
    p.add_argument('-f', '--format', default='csv', type=str, choices=["csv", "xml"])
    cl = p.parse_args()

    directory = cl.directory

    # add all subdirectories to the list
    paths = []
    for subdir in sorted(os.listdir(directory)):
        path = os.path.join(directory, subdir)
        if os.path.isdir(path):
            paths.append(path)

    # read in all results
    results = []
    for path in paths:
        result = ExperimentResults(path)
        if result.completed:
            results.append(result)

    printer = None
    if cl.format == 'csv':
        printer = CSVComparisonPrinter()
    elif cl.format == 'xml':
        printer = XMLComparisonPrinter()

    # save results to appropriate format
    with open(os.path.join(directory, f"comparison.{printer.file_type}"), "w") as f:
        header = printer.get_header_line()
        if not header == "":
            f.write(header)

        for idx, result in enumerate(results):
            item_header = printer.get_item_header_line()
            if not item_header == "":
                f.write(item_header)

            f.write(f"{printer.result_to_string(result)}")

            item_footer = printer.get_item_footer_line()
            if not item_footer == "":
                f.write(item_footer)

        footer = printer.get_footer_line()
        if not footer == "":
            f.write(footer)