diff --git a/bob/ip/binseg/script/analyze.py b/bob/ip/binseg/script/analyze.py index 8ce4fde614efcf0e93679e3b409794ef5a07c24c..4ca900d94d096dd21fda106a325db4d64344e0e8 100644 --- a/bob/ip/binseg/script/analyze.py +++ b/bob/ip/binseg/script/analyze.py @@ -258,18 +258,33 @@ def analyze( if k.startswith("_"): logger.info(f"Skipping dataset '{k}' (not to be compared)") continue + candidate = os.path.join(analysis_folder, f"{k}.csv") + if not os.path.exists(candidate): + logger.error(f"Skipping dataset '{k}' " \ + f"(candidate CSV file `{candidate}` does not exist!)") + continue systems += [k, os.path.join(analysis_folder, f"{k}.csv")] if second_annotator is not None: for k, v in second_annotator.items(): if k.startswith("_"): - logger.info(f"Skipping dataset '{k}' (not to be compared)") + logger.info(f"Skipping second-annotator '{k}' " \ + f"(not to be compared)") + continue + if k not in dataset: + logger.info(f"Skipping second-annotator '{k}' " \ + f"(no equivalent `dataset[{k}]`)") + continue + if not dataset[k].all_keys_match(v): + logger.info(f"Skipping second-annotator '{k}' " \ + f"(keys do not match `dataset[{k}]`?)") + continue + candidate = os.path.join(analysis_folder, "second-annotator", + f"{k}.csv") + if not os.path.exists(candidate): + logger.error(f"Skipping second-annotator '{k}' " \ + f"(candidate CSV file `{candidate}` does not exist!)") continue - systems += [ - f"{k} (2nd. annot.)", - os.path.join( - analysis_folder, "second-annotator", f"{k}.csv" - ), - ] + systems += [f"{k} (2nd. annot.)", candidate] output_figure = os.path.join(output_folder, "comparison.pdf") output_table = os.path.join(output_folder, "comparison.rst")