[Python-Dev] PEP 389: argparse - new command line parsing module

Michael Foord fuzzyman at voidspace.org.uk
Sat Oct 3 18:21:43 CEST 2009


Steven Bethard wrote:
> [snip...]
>> I'd be much more interested in Guido's suggestion of auto-generated custom
>> help messages for sub-commands.
>>     
>
> Maybe I misunderstood, but I think this is already the default
> argparse behavior, no?
>
>   
Cool. I didn't realise that help for subcommands was already 
implemented. :-)

Michael


> import argparse
> parser = argparse.ArgumentParser()
> parser.add_argument('--foo')
> subparsers = parser.add_subparsers()
> parser1 = subparsers.add_parser('1')
> parser1.add_argument('--bar')
> parser2 = subparsers.add_parser('2')
> parser2.add_argument('baz')
> parser.parse_args(['--help'])
>
>   
>>>> import argparse
>>>> parser = argparse.ArgumentParser()
>>>> parser.add_argument('--foo')
>>>> subparsers = parser.add_subparsers()
>>>> parser1 = subparsers.add_parser('1')
>>>> parser1.add_argument('--bar')
>>>> parser2 = subparsers.add_parser('2')
>>>> parser2.add_argument('baz')
>>>>         
>
>   
>>>> # top level argument help
>>>> parser.parse_args(['--help'])
>>>>         
> usage: [-h] [--foo FOO] {1,2} ...
>
> positional arguments:
>   {1,2}
>
> optional arguments:
>   -h, --help  show this help message and exit
>   --foo FOO
>
>   
>>>> # help for subparser 1
>>>> parser.parse_args(['1', '--help'])
>>>>         
> usage:  1 [-h] [--bar BAR]
>
> optional arguments:
>   -h, --help  show this help message and exit
>   --bar BAR
>
>   
>>>> # help for subparser 2
>>>> parser.parse_args(['2', '--help'])
>>>>         
> usage:  2 [-h] baz
>
> positional arguments:
>   baz
>
> optional arguments:
>   -h, --help  show this help message and exit
>
> Steve
>   


-- 
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/blog




More information about the Python-Dev mailing list