suppressing argparse arguments in the help

Calvin Spealman ironfroggy at gmail.com
Tue Feb 28 23:17:25 CET 2012


On Tue, Feb 28, 2012 at 1:07 PM, Peter Otten <__peter__ at web.de> wrote:
> Andrea Crotti wrote:
>
>> On 02/28/2012 04:02 PM, Peter Otten wrote:
>>> Andrea Crotti wrote:
>>>
>>>> I have a script that might be used interactively but also has some
>>>> arguments that
>>>> should not be used by "normal" users.
>>>> So I just want to suppress them from the help.
>>>> I've read somewhere that the help=SUPPRESS should do what I want:
>>>>
>>>>       parser.add_argument('-n', '--test_only',
>>>>                           action='store_true',
>>>>                           help=SUPPRESS)
>>>>
>>>> but that's what I get from "myapp -h", which is not exactly what I was
>>>> looking for..
>>>>
>>>>
>>>>     -f, --first_level     ==SUPPRESS== (default: False)
>>>>     --never_redevelop     ==SUPPRESS== (default: False)
>>>>
>>>>
>>>> Any other solutions?
>>> That shouldn't happen. Did you reload() somewhere?
>>> argparse tests object identity not equality with SUPPRESS, so you have to
>>> ensure that SUPPRESS stems from the same instance of the argparse module
>>> as your ArgumentParser.
>>>
>>
>> Ah great yes it wasn't actually the same..
>> but why not just use
>> if text != SUPPRESS
>> instead of:
>> if text is not SUPPRESS

Because identity tests are good in these situations where you need to pass a
"special" value and anything else could be valid, technically. This is known as
a "sentinel" and is a common pattern.

> Steven Bethard would have to answer that.
> If it were my code I would have used the equality test, but also the correct
> symbolic constant...
>
>> probably the second is more safe, but they are it's still checking
>> against a constant that
>> is very unlikely to clash with anything..
>
>
> --
> http://mail.python.org/mailman/listinfo/python-list



-- 
Read my blog! I depend on your acceptance of my opinion! I am interesting!
http://techblog.ironfroggy.com/
Follow me if you're into that sort of thing: http://www.twitter.com/ironfroggy



More information about the Python-list mailing list