byuccl / bfasst

Tools for FPGA Assurance Flows
Apache License 2.0
12 stars 5 forks source link

Error message on invalid flow #322

Closed jgoeders closed 11 months ago

jgoeders commented 11 months ago

When you select an invalid flow you get an Exception:

(.venv) jgoeders@goeders-office:~/bfasst$ python scripts/bfasster.py --design byu/alu --flow does_not_exist
Traceback (most recent call last):
  File "/home/jgoeders/bfasst/scripts/bfasster.py", line 85, in <module>
    ApplicationRunner().run_designs(parsed_args.flow, parsed_args.design)
  File "/home/jgoeders/bfasst/scripts/bfasster.py", line 28, in run_designs
    self.__run_ninja()
  File "/home/jgoeders/bfasst/scripts/bfasster.py", line 44, in __run_ninja
    flow_manager.create_flows(self.flow, self.designs, self.flow_args)
  File "/home/jgoeders/bfasst/bfasst/ninja_flows/ninja_flow_manager.py", line 50, in create_flows
    flow = get_flow(flow_name)(design_path, flow_args)
  File "/home/jgoeders/bfasst/bfasst/ninja_flows/flow_utils.py", line 24, in get_flow
    flow_module = import_module(f"bfasst.ninja_flows.{flow_name}")
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'bfasst.ninja_flows.does_not_exist'

It would be good the choices option were set in the argument parser so that the user received a proper usage message and could see what the available options are.