This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author terence.honles
Recipients terence.honles
Date 2021-04-16.19:07:46
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1618600066.88.0.240618154113.issue43874@roundup.psfhosted.org>
In-reply-to
Content
When creating a simple required subparser the following will result in an error instead of an error message:

>>> from argparse import ArgumentParser
>>>
>>> parser = ArgumentParser()
>>> subparsers = parser.add_subparsers(required=True)
>>> subparsers.add_parser('one')
>>> subparsers.add_parser('two')
>>>
>>> parser.parse_args([])

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python3.8/argparse.py", line 1768, in parse_args
    args, argv = self.parse_known_args(args, namespace)
  File "/usr/lib64/python3.8/argparse.py", line 1800, in parse_known_args
    namespace, args = self._parse_known_args(args, namespace)
  File "/usr/lib64/python3.8/argparse.py", line 2035, in _parse_known_args
    ', '.join(required_actions))
TypeError: sequence item 0: expected str instance, NoneType found

Looking at the code this is because the subparser is actually an action and when resolving the name it uses `None` as the subparser name which results in the error above.
History
Date User Action Args
2021-04-16 19:07:46terence.honlessetrecipients: + terence.honles
2021-04-16 19:07:46terence.honlessetmessageid: <1618600066.88.0.240618154113.issue43874@roundup.psfhosted.org>
2021-04-16 19:07:46terence.honleslinkissue43874 messages
2021-04-16 19:07:46terence.honlescreate