From d7d390d7bd4b2e1dbbe4d95d846b077dace1b34b Mon Sep 17 00:00:00 2001 From: Andre Anjos <andre.dos.anjos@gmail.com> Date: Tue, 19 May 2020 13:42:08 +0200 Subject: [PATCH] [script.analyze] Insert safey checks on automated analysis script --- bob/ip/binseg/script/analyze.py | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/bob/ip/binseg/script/analyze.py b/bob/ip/binseg/script/analyze.py index 8ce4fde6..4ca900d9 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") -- GitLab