Re: plac, the easiest command line arguments parser in the world
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
Re: plac, the easiest command line arguments parser in the world
On Jun 2, 12:37 am, Michele Simionato michele.simion...@gmail.com 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! ;) I like this approach to command-line argument parsing! Thanks for sharing your work. -- http://mail.python.org/mailman/listinfo/python-list
Re: plac, the easiest command line arguments parser in the world
On Jun 2, 6:37 am, Michele Simionato michele.simion...@gmail.com wrote: I would like to announce to the world the first public release of plac: http://pypi.python.org/pypi/plac The second release is out. I have added the recognition of keyword arguments, improved the formatting of the help message, and added many tests. -- http://mail.python.org/mailman/listinfo/python-list
Re: plac, the easiest command line arguments parser in the world
On 02/06/2010 05:37, 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. I like it. I'm 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've always found the existing offerings just a little too much work to bother with. I'll give plac a run and see how it behaves. Thanks TJG -- http://mail.python.org/mailman/listinfo/python-list
Re: plac, the easiest command line arguments parser in the world
Tim Golden m...@timgolden.me.uk writes: pattern, which provides a minimally semi-self-documenting approach for positional args, but I've always found the existing offerings just a little too much work to bother with. I'll give plac a run and see how it behaves. 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've figured it out a bit. -- http://mail.python.org/mailman/listinfo/python-list
Re: plac, the easiest command line arguments parser in the world
On Jun 2, 10:43 am, Paul Rubin no.em...@nospam.invalid wrote: Tim Golden m...@timgolden.me.uk writes: pattern, which provides a minimally semi-self-documenting approach for positional args, but I've always found the existing offerings just a little too much work to bother with. I'll give plac a run and see how it behaves. 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've figured it out a bit. Notice that optparse is basically useless in the use case Tim is considering (positional arguments) since it only manages options. -- http://mail.python.org/mailman/listinfo/python-list
Re: plac, the easiest command line arguments parser in the world
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! ;) Thanks for participating. JM -- http://mail.python.org/mailman/listinfo/python-list
Re: plac, the easiest command line arguments parser in the world
Paul Rubin, 02.06.2010 10:43: Tim Golden writes: pattern, which provides a minimally semi-self-documenting approach for positional args, but I've always found the existing offerings just a little too much work to bother with. I'll give plac a run and see how it behaves. 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've figured it out a bit. 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 -- http://mail.python.org/mailman/listinfo/python-list
Re: plac, the easiest command line arguments parser in the world
On Jun 2, 11:01 am, Stefan Behnel stefan...@behnel.de wrote: 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. 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 ;) -- http://mail.python.org/mailman/listinfo/python-list
Re: plac, the easiest command line arguments parser in the world
On Jun 2, 6:37 am, Michele Simionato michele.simion...@gmail.com wrote: With blatant immodesty, plac claims to be the easiest to use command line arguments parser module in the Python world 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! -- http://mail.python.org/mailman/listinfo/python-list
Re: plac, the easiest command line arguments parser in the world
Michele Simionato michele.simion...@gmail.com wrote: It seems I have to take that claim back. A few hours after the announce I was pointed out tohttp://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! 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 -- http://mail.python.org/mailman/listinfo/python-list