argparse in style
Python
Latest commit 78dc9f2 Aug 24, 2015 @lakshmivyas lakshmivyas Merge pull request #18 from hyde/refactor/versioning-travis-etc
Fix code formatting issues.
Permalink
Failed to load latest commit information.
commando
.gitignore
.travis.yml
AUTHORS.rst Support both Python 2 and Python 3 Aug 23, 2015
CHANGELOG.rst
CONTRIBUTING.rst Fix code formatting issues. Aug 24, 2015
LICENSE Issue #9: Add supporting documentation to track the project history. Feb 19, 2013
MANIFEST.in
README.rst Fix code formatting issues. Aug 24, 2015
setup.py Fix code formatting issues. Aug 24, 2015
tox.ini

README.rst

commando - argparse in style

Version 1.0.0

A simple wrapper for argparse that allows commands and arguments to be defined declaratively using decorators. Note that this does not support all the features of argparse yet.

Commando also bundles a few utilities that are useful when building command line applications.

Example

Without commando:

def main():
    parser = argparse.ArgumentParser(description='hyde - a python static website generator',
                                  epilog='Use %(prog)s {command} -h to get help on individual commands')
    parser.add_argument('-v', '--version', action='version', version='%(prog)s ' + __version__)
    parser.add_argument('-s', '--sitepath', action='store', default='.', help="Location of the hyde site")
    subcommands = parser.add_subparsers(title="Hyde commands",
                                     description="Entry points for hyde")
    init_command = subcommands.add_parser('init', help='Create a new hyde site')
    init_command.set_defaults(run=init)
    init_command.add_argument('-t', '--template', action='store', default='basic', dest='template',
                     help='Overwrite the current site if it exists')
    init_command.add_argument('-f', '--force', action='store_true', default=False, dest='force',
                     help='Overwrite the current site if it exists')
    args = parser.parse_args()
    args.run(args)

def init(self, params):
    print params.sitepath
    print params.template
    print params.overwrite

With commando:

class Engine(Application):

    @command(description='hyde - a python static website generator',
            epilog='Use %(prog)s {command} -h to get help on individual commands')
    @param('-v', '--version', action='version', version='%(prog)s ' + __version__)
    @param('-s', '--sitepath', action='store', default='.', help="Location of the hyde site")
    def main(self, params): pass

    @subcommand('init', help='Create a new hyde site')
    @param('-t', '--template', action='store', default='basic', dest='template',
            help='Overwrite the current site if it exists')
    @param('-f', '--force', action='store_true', default=False, dest='overwrite',
            help='Overwrite the current site if it exists')
    def init(self, params):
        print params.sitepath
        print params.template
        print params.overwrite

Resources

  1. Changelog
  2. License
  3. Contributing
  4. Authors