import logging import argparse import logging def cmd_foo(args, parser): pass def cmd_bar(args, parser): pass def get_args(): parser = argparse.ArgumentParser() sp_action = parser.add_subparsers(dest="action", help="action to take") p_foo = sp_action.add_parser("foo", help="foo action") p_foo.set_defaults(func=cmd_foo) p_foo.add_argument("-c", "--config", help="config file path") sp_bar = sp_action.add_subparsers(dest="bar", help="bar action") sp_bar.set_defaults(func=cmd_bar) sp_bar.add_argument("-s", "--shutdown", action="store_true", help="shutdown on program exit") return parser.parse_args(), parser def main(): logging.basicConfig(level=logging.INFO) args, parser = get_args() args.func(args, parser)