Metadata-Version: 1.1
Name: ejudge
Version: 0.5.9
Summary: A simple ejudge for Python. Supports several languages and sandboxing.
Home-page: http://github.com/fabiommendes/ejudge
Author: Fábio Macêdo Mendes
Author-email: fabiomacedomendes@gmail.com
License: UNKNOWN
Description: `ejudge` is a library that implements a basic electronic judge/grader for code.
        It can run Python, Ruby, C, and C++ code in a sandbox and supporting other
        languages is easy.
        
        This library uses the ``iospec`` format for specifying the expected inputs and
        outputs for the some program execution. For more info, refer to the iospec_
        manual.
        
        .. _iospec: https://readthedocs.org/iospec/
        
        
        Command line
        ============
        
        The ``ejudge`` accepts two sub-commands:
        
        ``$ ejudge run <source> <inputs>``:
            Runs the given input source code and passes all inputs defined
            in the <inputs> file. The inputs may be either a simple text file with one
            input per line or an IoSpec source file with an `.iospec` extension.
        ``$ ejudge grade <source> <iospec inputs>``:
            Runs the input source code and compares the result with the given IoSpec
            test cases. It than returns a feedback message telling if the code ran as
            expected and, in case of errors, what are the probable problems.
        
        Library
        =======
        
        The main entry points in the :mod:`ejudge` module are the :func:`ejudge.run` and
        :func:`ejudge.grade` functions. The first is responsible for running code against
        a set of inputs and collect the resulting IO. The second function runs code and
        compares it with the expected iospec result.
        
        >>> from ejudge import run
        >>> src = 'print("hello %s!" % input("name: "))'
        >>> inputs = ['john']
        >>> spec = run(src, inputs, lang='python')
        >>> list(spec[0])  # fetch the first test case
        [Out('name: '), In('john'), Out('hello john!')]
        
Platform: any
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Software Development :: Libraries
