New submission from caveman <toraboracave...@gmail.com>: if you execute the code below, mutually exclusive agrs are separated by '|' as expected. but if you uncomment the 1 line down there, then the args list will be too long, and as argparse tries to wrap the args around, it drops all '|'s which semantically destroys the intended syntax of the arguments.
import argparse parser = argparse.ArgumentParser() group = parser.add_mutually_exclusive_group() group.add_argument("-v", "--verbose", action="store_true") group.add_argument("-q", "--quiet", action="store_true") group.add_argument("-x", metavar='X', type=str, help="the base", nargs='?') group.add_argument("-y", metavar='Y', type=str, help="the exponent", nargs='?') group.add_argument("z", metavar='Z', type=str, help="the exponent", nargs='?') group.add_argument("z", metavar='Z', type=str, help="the exponent", nargs='?') group.add_argument("z", metavar='Z', type=str, help="the exponent", nargs='?') group.add_argument("z", metavar='Z', type=str, help="the exponent", nargs='?') group.add_argument("z", metavar='Z', type=str, help="the exponent", nargs='?') group.add_argument("z", metavar='Z', type=str, help="the exponent", nargs='?') group.add_argument("z", metavar='Z', type=str, help="the exponent", nargs='?') #group.add_argument("z", metavar='Z', type=str, help="the exponent", nargs='?') args = parser.parse_args() ---------- components: Library (Lib) messages: 304184 nosy: caveman priority: normal severity: normal status: open title: argparse drops '|'s when the arguments are too long type: behavior versions: Python 2.7, Python 3.4, Python 3.5, Python 3.6, Python 3.7, Python 3.8 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue31768> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com