Summary
We looked at how to use argparse
and os.environ
to gather command-line argument and configuration parameters. This builds on the techniques shown in Chapter 13, Configuration Files and Persistence.
We can implement a number of common command-line features using argparse
. This includes common features, such as showing the version number and exiting or showing the help text and exiting.
We looked at using the Command design pattern to create applications that can be expanded or refactored to offer new features. Our goal is to explicitly keep the body of the top-level main function as small as possible.
Design considerations and trade-offs
The command-line API is an important part of a finished application. While most of our design effort focuses on what the program does while it's running, we do need to address two boundary states: startup and shutdown. An application must be easy to configure when we start it up. Also, it must shut down gracefully, properly flushing all of the output...