@@ -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