← Back to issue list

Provide limited choices for global arguments

View original Github issue

Metadata

Project
craft-cli
Number
#219
Type
issue
State
open
Author
lengau
Labels
Created
2024-01-12 01:59:22+00:00
Updated
2024-01-12 03:24:02+00:00
Closed

Current evaluation

No evaluation has been recorded for this issue yet.

Issue body

### What needs to get done Global arguments should have a way to provide a limited set of choices or a type coercion for the application. Two examples are the built-in `--verbosity`, which has a limited set of choices, and charmcraft's `--project-dir`, which provides a validator: ```python verbosity = GlobalArgument( "verbosity", "option", None, "--verbosity", "Set the verbosity level to 'quiet', 'brief', 'verbose', 'debug' or 'trace'", choices=[mode.name.lower() for mode in EmitterMode], ) project_dir = GlobalArgument( "project_dir", "option", None, "--project_dir", "Set the base directory for the project.", validator=pydantic.DirectoryPath, ) ``` `choices` matches argparse, `validator` is chosen instead of `type` since that's already used. ### Why it needs to get done Right now an app needs to parse and provide error messages for this by itself, but `craft-cli` can often do this itself.

Evaluation history

No evaluation history available.