Message349911
Currently, when `parser.add_argument()` is given argument with `action='store_const'` and no `const` argument , it throws an exception :
>>> from argparse import ArgumentParser
>>> parser = ArgumentParser()
>>> parser.add_argument("--foo", help="foo", action='store_const')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/captain/projects/cpython/Lib/argparse.py", line 1350, in add_argument
action = action_class(**kwargs)
TypeError: __init__() missing 1 required positional argument: 'const'
>>>
Specifying the `const` argument stops this exception:
>>> parser.add_argument("--foo", help="foo", action='store_const', const=None)
_StoreConstAction(option_strings=['--foo'], dest='foo', nargs=0, const=None, default=None, type=None, choices=None, help='foo', metavar=None)
Originally the docs, said when `action` was set to` 'store_const'` `const` defaulted to `None` which was not matching with the implementation at the time.
After this commit : https://github.com/python/cpython/commi/b4912b8ed367e540ee060fe912f841cc764fd293, The docs were updated to match the implementation to fix Bpo issues :
https://bugs.python.org/issue25299
https://bugs.python.org/issue24754 and
https://bugs.python.org/issue25314
I suggest that we make `const` default to `None` If `action='store_const'` as was intended originally before edits to the docs. If no one objects, I can open a PR for this. |
|
Date |
User |
Action |
Args |
2019-08-18 00:41:15 | nanjekyejoannah | set | recipients:
+ nanjekyejoannah, r.david.murray, A. Skrobov |
2019-08-18 00:41:15 | nanjekyejoannah | set | messageid: <1566088875.45.0.199116489639.issue37880@roundup.psfhosted.org> |
2019-08-18 00:41:15 | nanjekyejoannah | link | issue37880 messages |
2019-08-18 00:41:15 | nanjekyejoannah | create | |
|