Skip to content

Commit b5d12d3

Browse files
committed
longer help messages
1 parent 54eb35b commit b5d12d3

File tree

1 file changed

+38
-5
lines changed

1 file changed

+38
-5
lines changed

src/diffpy/cmi/cli.py

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,24 @@ def _build_parser() -> argparse.ArgumentParser:
5252
p = argparse.ArgumentParser(
5353
prog="cmi",
5454
description=(
55-
"Welcome to diffpy.cmi, a complex modeling infrastructure "
56-
"for multi-modal analysis of scientific data.\n\n"
55+
"""\
56+
Welcome to diffpy.cmi, a complex modeling infrastructure for
57+
multi-modal analysis of scientific data.
58+
59+
Diffpy.cmi is designed as an extensible complex modeling
60+
infrastructure. Users and developers can readily integrate
61+
novel data types and constraints into custom workflows. While
62+
widely used for advanced analysis of structural data, the
63+
framework is general and can be applied to any problem where
64+
model parameters are refined to fit calculated quantities to
65+
data.
66+
67+
Diffpy.cmi is comprised of modular units called 'packs' and
68+
'profiles' that facilitate tailored installations for specific
69+
scientific applications. Run 'cmi info -h' for more details.
70+
"""
5771
),
58-
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
72+
formatter_class=argparse.RawDescriptionHelpFormatter,
5973
)
6074
p.add_argument(
6175
"-v", "--verbose", action="store_true", help="Enable debug logging."
@@ -67,13 +81,32 @@ def _build_parser() -> argparse.ArgumentParser:
6781
version=f"diffpy.cmi {__version__}",
6882
)
6983
p.add_argument(
70-
"--manual", action="store_true", help="Open manual and exit."
84+
"--manual",
85+
action="store_true",
86+
help="Open online documentation and exit.",
7187
)
7288
p.set_defaults()
7389
sub = p.add_subparsers(dest="cmd", metavar="<command>")
7490
# example
7591
p_info = sub.add_parser(
76-
"info", help="Show info about packs, profiles, and examples."
92+
"info",
93+
help=("Prints info about packs, profiles, and examples.\n "),
94+
description=(
95+
"""
96+
Definitions:
97+
pack: A collection of data processing routines, models, and examples.
98+
For example, the 'pdf' pack contains packages used for modeling
99+
and refinement of the Atomic Pair Distribution Function (PDF).
100+
101+
profile: A set of pre-defined packs or configurations for a specific
102+
scientific workflow. Profiles can be installed or customized
103+
for different use cases.
104+
105+
examples: Example scripts or folders that can be copied locally using
106+
'cmi copy <example_name>'.
107+
"""
108+
),
109+
formatter_class=argparse.RawDescriptionHelpFormatter,
77110
)
78111
p_info.set_defaults()
79112
sub_info = p_info.add_subparsers(dest="info_cmd", metavar="<command>")

0 commit comments

Comments
 (0)