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:
More concise with repeated information moved to the parent command
Dynamically generated for each generated command
Informative
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
[ ] Move repeated information from command help onto parent command's help message.
[ ] Dynamically generate the help messages when generating the command classes.
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:
Checklist for Completion