Skip to content

plaguss/cli-help-maker

Repository files navigation

cli-help-maker

Command Line Interface help message generator.

ci workflow Code style: black License pyversions


This repo contains a CLI to create simulated help messages with the positions annotated of the commands, arguments and options. Its created as a separated package, but its intended use is to generate datasets to be used in helpner-core, which deals with the model that powers helpner.

What range of help messages covers?

For the moment, it indents to recreate messages like those found in the examples of docopt-ng. This should cover CLI apps created in python using for example argparse, click or typer*.

typer uses click underneath, but when rich its is installed, the message has a special (and prettier) layout, currently not in the scope.

A proper list of items covered is yet to be made.

Installation

It can be installed directly from PyPI:

pip install cli-help-maker

This creates the following CLI:

cli-help-maker --help
                                                                                                
 Usage: cli-help-maker [OPTIONS] INPUT_PATH [OUTPUT_PATH]                                       
                                                                                                
 Function to generate a dataset of cli help messages from a .yaml file with the info.           
 A folder will be generated containing two jsonl files:                                         
 - arguments.jsonl:     Contains the arguments that were generated, these can be associated to  
 each     help message for further analysis.                                                    
 - dataset.jsonl:     A dataset of help messages with annotations.                              
                                                                                                
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────╮
│ *    input_path       FILE           Path pointing to the .yaml file. [default: None]        │
│                                      [required]                                              │
│      output_path      [OUTPUT_PATH]  Dirname of the output path. If not given, creates a     │
│                                      directory with the version number                       │
│                                      [default: None]                                         │
╰──────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────╮
│ --install-completion        [bash|zsh|fish|powershell|pwsh]  Install completion for the      │
│                                                              specified shell.                │
│                                                              [default: None]                 │
│ --show-completion           [bash|zsh|fish|powershell|pwsh]  Show completion for the         │
│                                                              specified shell, to copy it or  │
│                                                              customize the installation.     │
│                                                              [default: None]                 │
│ --help                                                       Show this message and exit.     │
╰──────────────────────────────────────────────────────────────────────────────────────────────╯

Examples

The folder examples contains a rough recreation of some of the examples found in docopt-ng repo, to see an example, run any of them, for example:

python examples/arguments_example_like.py

This would create a random help message with a layout similar to the one found in docopt-ng (approximately).

It highlights the labels using rich.

Development

TBD

About

Command Line Interface help message generator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages