On Sat, Nov 7, 2009 at 5:45 PM, Yuv <ubershme...@gmail.com> wrote: > This was posted to the argparse mailing list by Steven Bethard and now > we'd like some feedback from comp.lang.python. > > We now have a branch[5] of argparse that supports an ``argparse.run`` > function[6] which does > some function introspection to build a command line parser from a > function definition: > > ------------------------------ prog.py ------------------------------ > import argparse > > def func(foo, bar, baz): > """A function that foo's a bar with a baz. > foo - The foo > bar - The bar to be foo'd > baz - The baz with which to foo. > """ > print foo, bar, baz > > if __name__ == '__main__': > argparse.run(func) > ------------------------------ cmdline ------------------------------ > $ prog.py -h > usage: prog.py [-h] foo bar baz > > A function that foo's a bar with a baz. > > positional arguments: > foo The foo > bar The bar to be foo'd > baz The baz with which to foo. > > optional arguments: > -h, --help show this help message and exit > ----------------------------------------------------------------------
Looks great! Very handy. > I'd love to hear some feedback on this. At the moment, the code can > introspect argument names, types from defaults, types from annotations > (in Python 3), help messages from docstrings, and knows how to convert > multiple functions into subcommands. The code's compatible and tested > on python 2.3 - 3.1. There are probably more things we could support > [7], but I'd like to get some feedback on what we have so > far. Some specific questions: > > * Do you think this is worth including in argparse? > * Would you use the current ``argparse.run`` API in your own code? yes. Geremy Condra -- http://mail.python.org/mailman/listinfo/python-list