argparse.ArgumentParser("blah")
Peter Otten
__peter__ at web.de
Sun Oct 23 14:06:14 EDT 2011
Roy Smith wrote:
> As I read the docs (http://tinyurl.com/3ww9scr), the following two calls
> should result in the same object:
>
> parser = argparse.ArgumentParser(description="blah")
> parser = argparse.ArgumentParser("blah")
>
> In the first case, I'm explicitly setting description to "blah", in the
> second case, I'm passing "blah" as a positional parameter so it should
> be taken as first parameter to the function, which happens to be
> description. Either way should end up the same.
>
> I don't, however, get the same behavior when run with "-h". The first
> gives what I would expect:
>
> ------------------------------------------------
> usage: arg.py [-h]
>
> blah
>
> optional arguments:
> -h, --help show this help message and exit
> ------------------------------------------------
>
> and the second gives:
>
> ------------------------------------------------
> usage: blah [-h]
>
> optional arguments:
> -h, --help show this help message and exit
> ------------------------------------------------
>
> Is this a bug, or am I just not reading the docs right?
A quick look into the source code reveals the the documentation is not
consistent with the actual implementation:
http://hg.python.org/cpython/file/eef1027ab2f0/Lib/argparse.py#l1581
"""
class ArgumentParser(_AttributeHolder, _ActionsContainer):
[...]
def __init__(self,
prog=None,
usage=None,
description=None,
epilog=None,
version=None,
parents=[],
formatter_class=HelpFormatter,
prefix_chars='-',
fromfile_prefix_chars=None,
argument_default=None,
conflict_handler='error',
add_help=True):
"""
I suggest that you file a bug report.
PS: My guess is that you are supposed to use keyword parameters only, but
that the implementation doesn't enforce that (yet?).
More information about the Python-list
mailing list