New submission from Keith Smiley <keithbsmi...@gmail.com>:
With this code: ``` import argparse parser = argparse.ArgumentParser() group = parser.add_mutually_exclusive_group(required=True) group.add_argument("--foo", default="1") group.add_argument("--bar") args = parser.parse_args() print(args) ``` When you explicitly pass `--foo 1`, it is treated as if no argument was passed: ``` % python3 /tmp/bug.py --foo 1 usage: bug.py [-h] (--foo FOO | --bar BAR) bug.py: error: one of the arguments --foo --bar is required ``` I can't tell if this behavior is intentional, but it was surprising to me. It also seems to be somewhat based on the length of the default string. For example on my macOS machine if I change the default to `longerstring` it does not have this issue. ---------- components: Library (Lib) messages: 386934 nosy: keith priority: normal severity: normal status: open title: Explicit default required arguments with add_mutually_exclusive_group are rejected versions: Python 3.10, Python 3.6, Python 3.7, Python 3.8, Python 3.9 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue43220> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com