From 9485190604bb3fed6f45199684609667bc2ed1df Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Tue, 2 Jul 2024 15:14:55 +0500 Subject: [PATCH] ifcopenshell.draw - omit sys.argv + help message To make sure user will get an error if files are not provided - if we use sys.argv then we always have __file__ in it and if user won't provide fiels they'll get a less readable error Before: sr.setFile(files[0]) ~~~~~^^^ IndexError: list index out of range Now: usage: draw.py files [files ...] draw.py: error: the following arguments are required: files --- src/ifcopenshell-python/ifcopenshell/draw.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/draw.py b/src/ifcopenshell-python/ifcopenshell/draw.py index 017102f276..492a52eeab 100644 --- a/src/ifcopenshell-python/ifcopenshell/draw.py +++ b/src/ifcopenshell-python/ifcopenshell/draw.py @@ -406,7 +406,15 @@ if __name__ == "__main__": parser = argparse.ArgumentParser() - parser.add_argument("files", type=str, nargs="+") + parser.add_argument( + "files", + type=str, + nargs="+", + help=( + "List of files for script to use. " + "Last file is considered an output file (.svg), all other files are existing IFC files." + ), + ) for field in fields(draw_settings): if field.type == bool: @@ -418,9 +426,8 @@ if __name__ == "__main__": "--" + field.name.replace("_", "-"), dest=field.name, type=field.type, default=field.default ) - args = vars(parser.parse_args(sys.argv)) + args = vars(parser.parse_args()) files = args.pop("files") - files.remove(__file__) output = files.pop() settings = draw_settings(**args)