Since I use argparse a lot and also like to store some values in a nested dict this is my example.
import argparse
environments = { "development": { "account_id": "11111111111111111", "year": 2004 }, "production": { "account_id": "22222222222222222222", "year": 2007 }}
parser = argparse.ArgumentParser(description="A simple example.")
parser.add_argument("environment", help="environment to use")
parser.add_argument("-a", "--action", help="action to perform")
group = parser.add_mutually_exclusive_group()group.add_argument("--list", action="store_true", help="list")group.add_argument("--export", action="store_true", help="export")group.add_argument("--migrate", action="store_true", help="migrate")
# Optional argument with a default value#parser.add_argument("--output", default="out.txt", help="The output file (default: out.txt).")
# Optional argument with a boolean switch (action="store_true" makes it a flag)#parser.add_argument("--verbose", action="store_true", help="Enable verbose output.")
args = parser.parse_args()
if args.environment not in ['development', 'production']: exit('try -h for args')else: if args.list or args.export or args.migrate: print(f"environment: {args.environment} and account_id: {environments[args.environment]['account_id']}") #print(f"Output file: {args.output}") #if args.verbose: # print("Verbose mode enabled.") else: print ('try -h for args need --list, --export or --migrate')