| import os.path | |
| import fnmatch | |
| import argparse | |
| from lydorn_utils import python_utils | |
| def get_args(): | |
| argparser = argparse.ArgumentParser(description=__doc__) | |
| argparser.add_argument( | |
| '--dirpath', | |
| default="/home/lydorn/data/mapping_challenge_dataset/eval_runs", | |
| type=str, | |
| help='Path to eval directory') | |
| args = argparser.parse_args() | |
| return args | |
| def convert(in_filepath, stat_names): | |
| stats = python_utils.load_json(in_filepath) | |
| if stats: | |
| string = "" | |
| for stat_name in stat_names: | |
| string += str(round(100 * stats[stat_name], 1)) + " & " | |
| return string[:-2] + "\\\\" | |
| else: | |
| print("File not found!") | |
| return "" | |
| def main(): | |
| args = get_args() | |
| stat_names = ["AP", "AP_50", "AP_75", "AP_S", "AP_M", "AP_L", "AR", "AR_50", "AR_75", "AR_S", "AR_M", "AR_L"] | |
| dirname_list = next(os.walk(args.dirpath))[1] | |
| dirname_list = sorted(dirname_list) | |
| run_file_latex_list = [("Run name", "filename", "Latex")] | |
| run_max_len = 0 | |
| file_max_len = 0 | |
| for dirname in dirname_list: | |
| dirpath = os.path.join(args.dirpath, dirname) | |
| in_filename_list = fnmatch.filter(os.listdir(dirpath), "*.stats.*.annotation.*.json") | |
| in_filename_list = sorted(in_filename_list) | |
| for in_filename in in_filename_list: | |
| in_filepath = os.path.join(dirpath, in_filename) | |
| latex = convert(in_filepath, stat_names) | |
| run = dirname[:-len(" | 0000-00-00 00:00:00")] | |
| run_file_latex_list.append((run, in_filename, latex)) | |
| run_max_len = max(run_max_len, len(run)) | |
| file_max_len = max(file_max_len, len(in_filename)) | |
| for run, file, latex in run_file_latex_list: | |
| print(run.ljust(run_max_len, ' '), file.ljust(file_max_len, ' '), latex) | |
| if __name__ == '__main__': | |
| main() | |