"""argparse: subparsers, argument abbreviations and ambiguous option. Expected output:: Namespace(foo="baz", foo1=None, foo2=None) Output:: usage: argparse_subparsers_ambiguous_bug.py [-h] [--foo1 FOO1] [--foo2 FOO2] {bar} ... argparse_subparsers_ambiguous_bug.py: error: ambiguous option: --foo could match --foo1, --foo2 """ import argparse parser = argparse.ArgumentParser() parser_subs = parser.add_subparsers() parser.add_argument('--foo1') parser.add_argument('--foo2') parser_bar = parser_subs.add_parser('bar') parser_bar.add_argument('--foo') print(parser.parse_args('bar --foo baz'.split()))