#!/usr/bin/env python import arg import dbg def add(a, b): return a + b def inc(a): return add( a, 1 ) def dec(a, step, n): return a - step * n cmds = [ arg.cmd_new( 'add', [ 'v1', 'v2' ], comment='add v1 v2' ), arg.cmd_new( 'inc', [ 'v' ], comment='increment v' ), arg.cmd_new( 'dec', [ 'v' ], opts={ 'step': 1, 'n': 1 }, comment='v - step * n' ), ] cmd = arg.get_name_args( cmds ) dbg.out( 'cmd.name={} cmd.args={} cmd.opts={}'.format( cmd.name, cmd.args, cmd.opts ) ) func = eval( cmd.name ) args = list( map( float, cmd.args ) ) dbg.out( 'func={} args={}'.format( func, args ) ) ret = func( *args, **cmd.opts ) dbg.out( 'ret={}'.format( ret ) ) # EOF