Source code for pygrade.pygrade

# -*- coding: utf-8 -*-
"""A command-line tool to auto-grade python assignments.

usage:
    pygrade [--help] <command> [<args>...]

The most commonly used pygrade commands are:
     cheat      Detect plagiarism.
     clone      Clone all student GitHub repositories.
     delete     Delete student accounts.
     grade      Grade assignments.
     init       Initialize repositories.
     push       Push grades to student repositories.

See 'pygrade help <command>' for more information on a specific command.

"""
from subprocess import call
from docopt import docopt

from . import __version__


CMDS = ['cheat', 'clone', 'delete', 'grade', 'init', 'push', 'summarize']


[docs]def main(): args = docopt(__doc__, version='pygrade version ' + __version__, options_first=True) argv = [args['<command>']] + args['<args>'] if args['<command>'] in CMDS: exit(call(['pygrade-%s' % args['<command>']] + argv)) elif args['<command>'] in ['help', None]: exit(call(['pygrade', '--help'])) else: exit("%r is not a pygrade command. See 'pygrade help'." % args['<command>'])
if __name__ == '__main__': main()