On Nov 7, 2: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 > ---------------------------------------------------------------------- > > 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? > * If you wouldn't use it as-is, what additional features/modifications > would you require?
Looks quite useful. I am not sure I like the name "run", seems to short and innocent for a function this magical. Is the docstring expected to be formatted according to some convention? I don't recognize a docstring convention in the example, but then I don't bother with them much in my own code, that's why I ask. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list