From 083a9d899e22b3b2d2d6c226a589fe76b63f7d28 Mon Sep 17 00:00:00 2001 From: Charlotte Mauvezin <charlotte.mauvezin@irht.cnrs.fr> Date: Mon, 3 Jan 2022 11:34:21 +0100 Subject: [PATCH] Correctif Chaza --- nerval/evaluate.py | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/nerval/evaluate.py b/nerval/evaluate.py index 7fa887f..00d9e43 100644 --- a/nerval/evaluate.py +++ b/nerval/evaluate.py @@ -568,7 +568,7 @@ def run_multiple(file_csv, folder, threshold): else: raise f"No file found for files {annot}, {predict}" else: - raise "This is no folder" + raise Exception("the path indicated does not lead to a folder.") def threshold_float_type(arg): @@ -588,23 +588,27 @@ def main(): logging.basicConfig(level=logging.INFO) parser = argparse.ArgumentParser(description="Compute score of NER on predict.") + parser.add_argument( + "-m", + "--multiple", + help="Single if 1, multiple 2", + type=int, + required=True, + ) parser.add_argument( "-a", "--annot", help="Annotation in BIO format.", - required=False, ) parser.add_argument( "-p", "--predict", help="Prediction in BIO format.", - required=False, ) parser.add_argument( "-t", "--threshold", help="Set a distance threshold for the match between gold and predicted entity.", - required=False, default=THRESHOLD, type=threshold_float_type, ) @@ -612,24 +616,33 @@ def main(): "-c", "--csv", help="Csv with the correlation between the annotation bio files and the predict bio files", - required=False, type=Path, ) parser.add_argument( "-f", "--folder", help="Folder containing the bio files referred to in the csv file", - required=False, type=Path, ) args = parser.parse_args() - if args.csv and args.folder: - run_multiple(args.csv, args.folder, args.threshold) - elif args.annot and args.predict: - run(args.annot, args.predict, args.threshold) + if args.multiple == 1 or args.multiple == 2: + if args.multiple == 2: + if not args.folder: + raise argparse.ArgumentError(args.folder, "-f must be given if -m is 2") + if not args.csv: + raise argparse.ArgumentError(args.folder, "-c must be given if -m is 2") + if args.folder and args.csv: + run_multiple(args.csv, args.folder, args.threshold) + if args.multiple == 1: + if not args.annot: + raise argparse.ArgumentError(args.folder, "-a must be given if -m is 1") + if not args.predict: + raise argparse.ArgumentError(args.folder, "-p must be given if -m is 1") + if args.annot and args.predict: + run(args.annot, args.predict, args.threshold) else: - raise "You did not give the proper input" + raise argparse.ArgumentTypeError("Value has to be 1 or 2") if __name__ == "__main__": -- GitLab