Author paul.j3
Recipients Jeremiah.Jordan, Ken Williams, berker.peksag, bethard, eric.araujo, eric.smith, paul.j3, vstinner, wolma
Date 2018-12-27.22:34:51
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1545950091.68.0.882279994395.issue8538@roundup.psfhosted.org>
In-reply-to
Content
Let me highlight something about

https://stackoverflow.com/a/15008806/169947

The original question was how to implement an Action that accepts 'True' or 'False' as an argument.  Users often try `type=bool`, which doesn't work because of the normal behavior of the Python bool(astr) function.  That's been the subject of several other bug/issues.

https://bugs.python.org/issue14392
https://bugs.python.org/issue26994
https://bugs.python.org/issue24754
https://bugs.python.org/issue21208

My answer in that SO question is

https://stackoverflow.com/a/19233287/901925

----

@mgilson's answer proposes a '--foo', '--no-foo' alternative.  That is in line with this bug/issue.

    parser.add_argument('--feature', dest='feature', action='store_true')
    parser.add_argument('--no-feature', dest='feature', action='store_false')
    parser.set_defaults(feature=True)

So the question here is whether mgilson's simple answer is enough, or do we need to add Eric's ConfigureAction class?  

On a casual reading the patch proposed here shouldn't have backward compatibility issues, since it is an addon class, and doesn't modify existing classes.  But it lacks tests and documentation.  

Documentation for argparse is a tough issue.  While advanced users want more features and more documented details, most of the SO questions come from beginners, who's eyes glaze over when they read the existing documentation.
History
Date User Action Args
2018-12-27 22:34:54paul.j3setrecipients: + paul.j3, bethard, vstinner, eric.smith, eric.araujo, Jeremiah.Jordan, berker.peksag, wolma, Ken Williams
2018-12-27 22:34:51paul.j3setmessageid: <1545950091.68.0.882279994395.issue8538@roundup.psfhosted.org>
2018-12-27 22:34:51paul.j3linkissue8538 messages
2018-12-27 22:34:51paul.j3create