build/parser: detect invalid defaults

This commit is contained in:
Andrew Dennison 2023-10-06 14:34:53 +11:00
parent 4730ee2288
commit 0f7ea96812
1 changed files with 7 additions and 0 deletions

View File

@ -225,6 +225,13 @@ class LiteXArgumentParser(argparse.ArgumentParser):
# Injects arguments default values
if len(self._args_default):
argparse.ArgumentParser.set_defaults(self, **self._args_default)
# Catch defaults which do not match any arguments - typos?
remaining = list(self._args_default.keys())
for action in self._actions:
if action.dest in remaining:
remaining.remove(action.dest)
if len(remaining) > 0:
raise ValueError(f"set_default() for invalid argument(s): {remaining}")
# Parse args.
self._args = argparse.ArgumentParser.parse_args(self, args, namespace)