Re: plac, the easiest command line arguments parser in the world

2011-02-06 Thread Anjum Naseer
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

2010-06-04 Thread Kenny Meyer
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

2010-06-03 Thread Michele Simionato
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

2010-06-02 Thread Tim Golden

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

2010-06-02 Thread Paul Rubin
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

2010-06-02 Thread Michele Simionato
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

2010-06-02 Thread Jean-Michel Pichavant

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

2010-06-02 Thread Stefan Behnel

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

2010-06-02 Thread Michele Simionato
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

2010-06-02 Thread Michele Simionato
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

2010-06-02 Thread alex23
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