NRLMMD-GEOIPS / geoips

Main Geolocated Information Processing System code base with basic functionality enabled.
https://nrlmmd-geoips.github.io/geoips/
Other
15 stars 11 forks source link

Improve help messages for generated command classes #709

Open jsolbrig opened 2 months ago

jsolbrig commented 2 months ago

Requested Update

Depends on

708

Description

The current help messages for generated command classes (see #642 & #708) are repetitive and don't provide useful information. They should be updated to be:

Background and Motivation

Generated command classes, introduced in #642 and to be updated by #708 should provide better help messages. Help messages should be concise and dynamic. Current output looks like this:

> geoips list -h
usage: To use, type `geoips list <cmd> <sub-cmd>`.

List off available GeoIPS artifacts provided further commands. Current artifacts available for listing are: ["algorithms", "colormappers", "coverage_checkers", "filename_formatters", "interpolators", "output_checkers", "output_formatters", "procflows", "readers", "sector_adjusters", "sector_metadata_generators",
"sector_spec_generators", "title_formatters", "feature_annotators", "gridline_annotators", "product_defaults", "products", "sectors", "interfaces", "packages", "plugins", "scripts", "test-datasets", "unit-tests"].

positional arguments:
  {algorithms,colormappers,coverage_checkers,filename_formatters,interpolators,output_checkers,output_formatters,procflows,readers,sector_adjusters,sector_metadata_generators,sector_spec_generators,title_formatters,feature_annotators,gridline_annotators,product_defaults,products,sectors,interfaces,packages,plugins,scripts,test-datasets,unit-tests}
                        list instructions.
    algorithms          List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    colormappers        List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    coverage_checkers   List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    filename_formatters
                        List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    interpolators       List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    output_checkers     List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    output_formatters   List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    procflows           List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    readers             List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    sector_adjusters    List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    sector_metadata_generators
                        List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    sector_spec_generators
                        List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    title_formatters    List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    feature_annotators  List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    gridline_annotators
                        List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    product_defaults    List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    products            List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    sectors             List off plugins found under this interface. This is useful for seeing what plugins have been implemented through all, or a certain, GeoIPS Package. This information can then be used with `geoips get <interface_name> <plugin_name>` to get more information about a certain plugin.
    interfaces          List off every GeoIPS Interface. This is useful for seeing what is available throughout GeoIPS, but can also be extended to see what interfaces have been implemented in other geoips package, or just a certain package. This information can then be used with `geoips get-interface
                        <interface_name>` to get more information about a certain interface.
    packages            List off packages found under the GeoIPS Namespace, alongside their path and top-level docstring. This command will list every GeoIPS Package found, provided it has already been installed.
    plugins             List off plugins found under all, or a specified GeoIPS package. This information can then be used with `geoips get-plugin <interface_name> <plugin_name>` to get more information about a certain plugin.
    scripts             List off scripts found under all, or a specified GeoIPS package. This information can then be used with `geoips run <package_name> <script_name>` to run a certain process workflow, defined in a bash script.
    test-datasets       List off test-datasets used for testing GeoIPS and other GeoIPS Packages. This data is used for running tests via `geoips run <pkg_name> <script_name>`.
    unit-tests          List off unit-tests used in a certain GeoIPS Package. This data can be used to run unit tests via `geoips test unit-test ...`.

options:
  -h, --help            show this help message and exit
  --package_name {ancildat,data_fusion,fortran_utils,geocolor,geoips,geoips_clavrx,geoips_plugin_example,geoips_tropics,lunarref,my_fusion_package,my_package,rayleigh,recenter_tc,ryglickicane,synth_green}, -p {ancildat,data_fusion,fortran_utils,geocolor,geoips,geoips_clavrx,geoips_plugin_example,geoips_tropics,lunarref,my_fusion_package,my_package,rayleigh,recenter_tc,ryglickicane,synth_green}
                        The GeoIPS package to list from.
  --long, -l            Flag representing the 'long' listing of a certain command.
  --columns COLUMNS [COLUMNS ...], -c COLUMNS [COLUMNS ...]
                        Specific Headers of Data you'd like to see listed. For more in formation on headers available, run 'geoips list <cmd> <positional_args> --columns help'.

Checklist for Completion

jsolbrig commented 2 months ago

More info may be available in #645 which was closed in favor of this issue.