Anthony Sottile <asott...@umich.edu> added the comment: The bug is orthogonal, you can trigger it without the `required=` keyword argument via the (currently suggested) monkeypatch workaround which restores the pre-3.3 behaviour:
import argparse parser = argparse.ArgumentParser() subp = parser.add_subparsers() subp.add_parser('test') subp.required = True parser.parse_args() $ python3 test.py Traceback (most recent call last): File "test.py", line 7, in <module> parser.parse_args() File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/argparse.py", line 1730, in parse_args args, argv = self.parse_known_args(args, namespace) File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/argparse.py", line 1762, in parse_known_args namespace, args = self._parse_known_args(args, namespace) File "/usr/local/Cellar/python/3.6.5/Frameworks/Python.framework/Versions/3.6/lib/python3.6/argparse.py", line 1997, in _parse_known_args ', '.join(required_actions)) TypeError: sequence item 0: expected str instance, NoneType found Also note that when `dest` is specified it works fine: import argparse parser = argparse.ArgumentParser() subp = parser.add_subparsers(dest='cmd') subp.add_parser('test') subp.required = True parser.parse_args() $ python3 test.py usage: test.py [-h] {test} ... test.py: error: the following arguments are required: cmd ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue33109> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com