New submission from Joannah Nanjekye <nanjekyejoan...@gmail.com>:

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.

----------
messages: 349911
nosy: A. Skrobov, nanjekyejoannah, r.david.murray
priority: normal
severity: normal
status: open
title: For argparse add_argument with action='store_const', const should 
default to None.
versions: Python 3.9

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue37880>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to