from fancycmd import command opts = [('t', 'test', False, 'just test execution')] @command(opts=opts, usage='%name [-t]') def main(*args, **kwargs): '''documentation''' pass @command(usage='%name [-t]') def main(dirname, test=('t', False, 'just test execution')): '''documentation''' pass if __name__ == '__main__': main() main('-t nax'.split()) # multiple commands from fancycmd import dispatch @command(usage='%name [-t]', opts=simple_opts) def simple(*args, **opts): '''docs''' pass @command(usage='%name ...', opts=complex_opts, name='complex') def complex_(*args, **opts): '''docs''' pass if __name__ == '__main__': dispatch(globalopts=globalopts) dispatch(globalopts=globalopts, args='complex -p'.split())