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