ssec-jhu / dplutils

Distributed(Data, Discovery) Pipeline Uitilities
BSD 3-Clause "New" or "Revised" License
1 stars 0 forks source link

[CLI] Pipeline-aware help messaging #101

Closed amitschang closed 2 months ago

amitschang commented 3 months ago

It would be useful if the cli utilities (cli_run) would provide pipeline specific help instead of generic message for the --help option. For example, it would be useful to get a list of tasks and even their default configs, and a list of the required and known context parameters. This would aid a user in updating configuration via command line or file without having to look at code to discern task names for instance.

A illustritive example might look like:

usage: mypipeline [-h] [-c SET_CONTEXT] [-s SET_CONFIG] [-o OUT_DIR]

options:
  -h, --help            show this help message and exit
  -c SET_CONTEXT, --set-context SET_CONTEXT
                        set context parameter
  -s SET_CONFIG, --set-config SET_CONFIG
                        set configuration parameter
  -o OUT_DIR, --out-dir OUT_DIR
                        write results to directory

required context parameters (set with -c param=value):
  param1
  param2
  param3

tasks (update with -s task_name.param=value):
  task1 - batch_size = 1, num_cpus = 1, ...
  task2 - batch_size = 10, num_cpus = 10, ...

It could be possible to have option to add help text for context parameters, and maybe show available keywords for tasks. And possibly only show the pipeline-specific help with another switch...