Source

caipyrinha / README.rst

Full commit

Caipyrinha

https://bitbucket.org/leliel12/caipyrinha/raw/tip/caipirinha.jpg

Abstraction layer over argparse.

Caipyrinha added 2 methods to argparse.ArgumentParser, callback and parse_wc. Also a Caipyrinha instance is callable and is equal to use parse_wc method.

Example of use

::

# ex.py

import caipyrinha

parser = caipyrinha.Caipyrinha(prog="Your Program") parser.add_argument("--version", action='version', version="%(prog)s 0.1")

@parser.callback(exit=0, group="group1") def first(flags, returns):

'''Execute this option and exit''' print "bye bye"

@parser.callback(action="store") def second(flags, returns):

'''set his own return value with his parameter''' return flags.second

@parser.callback("--third", group="group1") def no_used_name(flags, returns):

'''you cant use this argument with first''' print returns.second

import sys parser(sys.argv[1:])

Out

$ python ex.py --help
usage: Your Program [-h] [--version] [--first] [--second SECOND] [--third]

optional arguments:
  -h, --help       show this help message and exit
  --version        show program's version number and exit
  --first          Execute this option and exit
  --second SECOND  set his own return value with his parameter
  --third          you cant use this argument with first
$ python ex.py --first
bye bye
$ python ex.py --first --second "hello from second"
bye bye
$ python ex.py --first --second "hello from second" --third
usage: Your Program [-h] [--version] [--first] [--second SECOND] [--third]
Your Program: error: argument --third: not allowed with argument --first
$ python ex.py --second "hello from second" --third
hello from second