You may be interested in a little Python module I wrote to make handling of command line arguments even easier (open source and free to use) - http://freshmeat.net/projects/commando
> On Wednesday, June 02, 2010 12:37 AM Michele Simionato wrote: > I would like to announce to the world the first public release of > plac: > > http://pypi.python.org/pypi/plac > > Plac is a wrapper over argparse and works in all versions of > Python starting from Python 2.3 up to Python 3.1. > > With blatant immodesty, plac claims to be the easiest to use command > line arguments parser module in the Python world. Its goal is to > reduce the > learning curve of argparse from hours to minutes. It does so by > removing the need to build a command line arguments parser by hand: > actually it is smart enough to infer the parser from function > annotations. > > Here is a simple example (in Python 3) to wet your appetite: > > $ cat example.py > def main(arg: "required argument"): > "do something with arg" > print('Got %s' % arg) > > if __name__ == '__main__': > import plac; plac.call(main) # passes sys.argv[1:] to main > > $ python example.py -h > usage: example.py [-h] arg > > do something with arg > > positional arguments: > arg required argument > > optional arguments: > -h, --help show this help message and exit > > > $ python example.py > usage: example.py [-h] arg > example.py: error: too few arguments > > $ python example.py arg > Got arg > > $ python example.py arg1 arg2 > usage: example.py [-h] arg > example.py: error: unrecognized arguments: arg2 > > You can find in the documentation a lot of other simple and not so > simple > examples: > > http://micheles.googlecode.com/hg/plac/doc/plac.html > > > Enjoy! > > Michele Simionato > > P.S. answering an unspoken question: yes, we really needed yet > another > command line arguments parser! ;) >> On Wednesday, June 02, 2010 4:28 AM Tim Golden wrote: >> On 02/06/2010 05:37, Michele Simionato wrote: >> >> I like it. I am a constant user of the >> >> def main (a, b=1, c=2): >> >> if __name__ == '__main__': >> main (*sys.argv[1:]) >> >> pattern, which provides a minimally semi-self-documenting >> approach for positional args, but I have always found the existing >> offerings just a little too much work to bother with. >> I will give plac a run and see how it behaves. >> >> Thanks >> >> TJG >>> On Wednesday, June 02, 2010 4:43 AM Paul Rubin wrote: >>> Tim Golden <m...@timgolden.me.uk> writes: >>> >>> After using optparse a couple of times I got the hang of it. Maybe its >>> docs could be organized a bit better, but it does the obvious things >>> conveniently once you have figured it out a bit. >>>> On Wednesday, June 02, 2010 4:49 AM Michele Simionato wrote: >>>> Notice that optparse is basically useless in the use case Tim is >>>> considering (positional arguments) since it only manages options. >>>>> On Wednesday, June 02, 2010 4:52 AM Jean-Michel Pichavant wrote: >>>>> Michele Simionato wrote: >>>>> Thanks for participating. >>>>> >>>>> JM >>>>>> On Wednesday, June 02, 2010 5:01 AM Stefan Behnel wrote: >>>>>> Paul Rubin, 02.06.2010 10:43: >>>>>> >>>>>> Same from here. I managed to talk a Java-drilled collegue of mine into >>>>>> writing a Python script for a little command line utility, but he needed >>>>>> a >>>>>> way to organise his argument extraction code when the number of arguments >>>>>> started to grow beyond two. I told him that there were two ways to do it: >>>>>> do it by hand or do it right. He took the right choice and I took him to >>>>>> the optparse docs, copied the first example into his code and we adapted >>>>>> it >>>>>> a little. He just loved the beauty of it. >>>>>> >>>>>> Stefan >>>>>>> On Wednesday, June 02, 2010 5:14 AM Michele Simionato wrote: >>>>>>> a >>>>>>> it >>>>>>> >>>>>>> Could you show plac to your friend? I would be curious to know what he >>>>>>> think. >>>>>>> Perhaps he would call out his judgment on optparse ;) >>>>>>>> On Wednesday, June 02, 2010 6:42 AM Antoine Pitrou wrote: >>>>>>>> By the way, could you stop naming these "optional arguments", since >>>>>>>> positional arguments can be optional as well? It is confusing :) >>>>>>>> >>>>>>>> Thanks >>>>>>>> >>>>>>>> Antoine. >>>>>>>>> On Wednesday, June 02, 2010 6:51 AM Tim Golden wrote: >>>>>>>>> On 02/06/2010 11:42, Antoine Pitrou wrote: >>>>>>>>> >>>>>>>>> The great thing with English is that you can use nouns as >>>>>>>>> adjectives without changing them, so you can say "option arguments" >>>>>>>>> and "position arguments" quite happily here :) >>>>>>>>> >>>>>>>>> But then you run into the fact that you are having semantic arguments >>>>>>>>> about argument semantics :( >>>>>>>>> >>>>>>>>> TJG >>>>>>>>>> On Wednesday, June 02, 2010 9:06 AM J. Cliff Dyer wrote: >>>>>>>>>> +1 >>>>>>>>>> >>>>>>>>>> Options are options, arguments are arguments. An optional argument >>>>>>>>>> is >>>>>>>>>> not an option. It is an argument that can be left out. >>>>>>>>>>> On Wednesday, June 02, 2010 9:46 AM Michele Simionato wrote: >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>> It seems I have to take that claim back. A few hours after the >>>>>>>>>>> announce I was pointed out to http://pypi.python.org/pypi/CLIArgs >>>>>>>>>>> which, I must concede, is even easier to use than plac. It seems >>>>>>>>>>> everybody has written its own command line arguments parser! >>>>>>>>>>>> On Wednesday, June 02, 2010 8:51 PM alex23 wrote: >>>>>>>>>>>> I think I still find opterator[1] to be simpler and clearer. No >>>>>>>>>>>> magic >>>>>>>>>>>> global variables, no spooky behaviour with the main function, just >>>>>>>>>>>> a >>>>>>>>>>>> decorator and docstring. >>>>>>>>>>>> >>>>>>>>>>>> 1: http://github.com/buchuki/opterator >>>>>>>>>>>>> On Thursday, June 03, 2010 11:28 PM Michele Simionato wrote: >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>> The second release is out. I have added the recognition of keyword >>>>>>>>>>>>> arguments, improved the formatting of the help message, and added >>>>>>>>>>>>> many >>>>>>>>>>>>> tests. >>>>>>>>>>>>>> On Friday, June 04, 2010 8:48 PM Kenny Meyer wrote: >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> I like this approach to command-line argument parsing! Thanks for >>>>>>>>>>>>>> sharing your work. >>>>>>>>>>>>>> Submitted via EggHeadCafe >>>>>>>>>>>>>> WCF Generic DataContract object Serializer >>>>>>>>>>>>>> http://www.eggheadcafe.com/tutorials/aspnet/59ae2b9e-a3be-4cd5-a0ef-939a7abbdc3a/wcf-generic-datacontract-object-serializer.aspx -- http://mail.python.org/mailman/listinfo/python-list