← Back to issue list

Unhelpful error message when creating help if an argument doesn't have a help text

View original Github issue

Metadata

Project
craft-cli
Number
#242
Type
issue
State
open
Author
lengau
Labels
Created
2024-02-22 22:44:46+00:00
Updated
2024-02-22 22:44:46+00:00
Closed

Current evaluation

No evaluation has been recorded for this issue yet.

Issue body

### Bug Description If a command adds an argument without `help` text, the error raised isn't very useful. It should give a better error. ### To Reproduce ``` import sys import craft_cli class ExampleCommand(craft_cli.BaseCommand): name = "example" help_msg = overview = "unimportant" def fill_parser(self, parser): parser.add_argument("--do-something") craft_cli.emit.init(craft_cli.EmitterMode.BRIEF, "example-app", "example app") dispatcher = craft_cli.Dispatcher( "example-app", [craft_cli.CommandGroup("Example", [ExampleCommand])], summary="summary" ) dispatcher.pre_parse_args(sys.argv[1:]) dispatcher.load_command(None) dispatcher.run() ``` `python ./example.py help example` ### part yaml ```shell n/a ``` ### Relevant log output ```shell Traceback (most recent call last): File "/home/lengau/Work/Code/charmcraft-2/charmcraft/application/commands/example.py", line 22, in <module> dispatcher.pre_parse_args(sys.argv[1:]) File "/home/lengau/Work/Code/charmcraft-2/.venv/lib/python3.11/site-packages/craft_cli/dispatcher.py", line 469, in pre_parse_args help_text = self._get_requested_help(cmd_args) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/lengau/Work/Code/charmcraft-2/.venv/lib/python3.11/site-packages/craft_cli/dispatcher.py", line 355, in _get_requested_help return self._help_builder.get_command_help(command, command_options, output_format) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/lengau/Work/Code/charmcraft-2/.venv/lib/python3.11/site-packages/craft_cli/helptexts.py", line 425, in get_command_help textblocks = builder(usage, command.overview, options, other_command_names) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/lengau/Work/Code/charmcraft-2/.venv/lib/python3.11/site-packages/craft_cli/helptexts.py", line 312, in _build_plain_command_help option_lines.extend(_build_item_plain(title, text, max_title_len)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/lengau/Work/Code/charmcraft-2/.venv/lib/python3.11/site-packages/craft_cli/helptexts.py", line 71, in _build_item_plain first = f" {title:>{title_space}s}: {wrapped_lines[0]}" ~~~~~~~~~~~~~^^^ IndexError: list index out of range ```

Evaluation history

No evaluation history available.