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
This commit is contained in:
Andrej730
2024-07-02 15:14:55 +05:00
parent d1523eaeac
commit 9485190604
+10 -3
View File
@@ -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)