Applications with more than a handful of user-settable options are best configured through a combination of command line args, config files, hard-coded defaults, and in some cases, environment variables. Python's command line parsing modules like argparse have very limited support for config files and environment variables, so this module extends argparse to add these features.