I have the following snippet where I am using argparse with multiple subparsers
parser = argparse.ArgumentParser(description = "Setup the DB", add_help=False) parser.add_argument('action', type = str, choices=['drop','populate','print','create','print-metadata'], help = "Specify an action", default = None) subparsers = parser.add_subparsers() drop_parser = subparsers.add_parser('drop',parents=[parser]) drop_parser.add_argument('-dataset-name', required=True, type = str, help = "Dataset Name", default = None) ..... args = parser.parse_args() ..... When I go to run this I get the following:
python .\populatedb.py drop -dataset-name foo populatedb.py: error: invalid choice: 'foo' (choose from 'drop', 'populate', 'print', 'create', 'print-metadata') I am wondering where the code above is going wrong. Note that the "action" argument is a positional argument.
Thank you in advance. This is my first use of subparsers I am probably making an obvious mistake.
Thank you in advance.
Regards,
Ranga