Source

caipyrinha / README.rst

leliel12 707653d 


leliel12 0cfcadd 






leliel12 707653d 
leliel12 0cfcadd 
leliel12 f057505 
leliel12 f694409 
leliel12 0cfcadd 























leliel12 707653d 


leliel12 0cfcadd 


















Caipyrinha
==========

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