Allowing specific values for an Argparse argument
argparse, python
Solution
An argparse argument can be limited to specific values with the `choices` parameter:
...
parser.add_argument('--val',
choices=['a', 'b', 'c'],
help='Special testing value')
args = parser.parse_args(sys.argv[1:])
See the docs for more details.
Problem
Is it possible to require that an `argparse` argument be one of a few preset values? My current approach would be to examine the argument manually and if it's not one of the allowed values call `print_help()` and exit. Here's the current implementation: ``` ... parser.add_argument('--val', help='Special testing value') args = parser.parse_args(sys.argv[1:]) if args.val not in ['a', 'b', 'c']: parser.print_help() sys.exit(1) ``` It's not that this is particularly difficult, but rather that it appears to be messy.