✨ Add support for help for CLI arguments #123
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
✨ Add support for
help
for CLI arguments.As this is not supported by Click, this PRs does a lot of work sub-classing the necessary Click internal classes to add support for
help
parameters for CLI arguments, and all the relevant related parameters (e.g.show_default
,hidden
, etc).CLI programs built with Typer will have an
Arguments
section with consistent formatting, showing default values, etc.The new classes (Click sub-classes) also update a bit the way CLI arguments are shown in the help text to make the name of the CLI argument obvious even if it's an enum, date, or has default values.
This will make it easy to visually understand the relationship between the names shown in the
Usage
line (the first line) and theArguments
section.Because these new classes re-reimplement a lot of the logic existing for CLI options, but for CLI arguments, there's a lot of new docs, and a lot of new tests testing those docs, keeping coverage at 100%. 💯
This also makes
show_default
andshow_envvar
default toTrue
. ✨ With this, by default, any CLI program will show all the information when there's information to show instead of requiring manually turning it on.