See the documentation here: https://caipyrinha.readthedocs.org

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"

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


$ 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