suppressing argparse arguments in the help
Calvin Spealman
ironfroggy at gmail.com
Tue Feb 28 17:17:25 EST 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