Skip to main content

autograder_gen

License: MIT Code style: black

autograder_gen is a tool for lecturers to automatically generate assessment scripts for Grading a Programming Assignment on Gradescope. It supports filling out an interactive web form or providing a YAML configuration, which then generates a packaged ZIP file ready to be uploaded to Gradescope. The project validates your YAML configuration, renders test scripts using Jinja2 templates, and packages everything for immediate upload to Gradescope.

Installation

Install the package via pip:

pip install autograder_gen

CLI Usage

When installed, autograder-gen generates Gradescope autograders directly from configuration files. Running without parameters displays usage help:

autograder-gen
usage: autograder-gen [-h] [--config CONFIG] [--descriptions]
                      [--run-submission RUN_SUBMISSIONS]
                      [--run-stub-submissions [RUN_STUBS_SUBMISSIONS]]
                      [--verbose]

Generate Gradescope autograder script from YAML configuration. Generated files
will be at the same folder as the config (autograder.zip, stub submissions for
testing, and optionally description.docx and description.md when
--descriptions is specified).

options:
  -h, --help            show this help message and exit
  --config, -c CONFIG   Path to YAML configuration file
  --descriptions, --description
                        Generate description.docx and description.md
                        assessment descriptions
  --run-submission, -r RUN_SUBMISSIONS
                        Path or folder name of submission directory or zip
                        file to run (can be specified multiple times)
  --run-stub-submissions [RUN_STUBS_SUBMISSIONS]
                        Run autograder for generated stub submissions
                        (stub_correct_answer.zip, stub_wrong_answer.zip,
                        stub_compiler_error.zip,
                        stub_correct_answer_wrong_location.zip)
  --verbose, -v         Print full autograder execution logs instead of only
                        paths to log files

Examples

Generate an autograder package:

autograder-gen --config config.yaml

Generate assessment descriptions (description.docx and description.md):

autograder-gen --config config.yaml --descriptions

Run student submission against an autograder configuration:

autograder-gen --config config.yaml --run-submission submission.zip

Run autograder against generated stub submissions:

autograder-gen --config config.yaml --run-stub-submissions

Batch Processing

Use autograder-gen-batch to process multiple configuration files or directories at once:

# Generate autograders for all configurations in a folder
autograder-gen-batch path/to/assignments/

# Run autograders for stub submissions across all configurations
autograder-gen-batch path/to/assignments/ --run-stub-submissions

Web Interface

Launch the interactive web interface:

autograder-gen-web

Development and Building from Source

For development instructions, building from source, and running Python source files directly, see BUILD.md.

Authors

License

Contributions are welcome and will be credited. This project is licensed under the MIT License.
The University of Reading retains rights of original contributions.

Metadata

Release files for autograder-gen 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for autograder-gen 0.1.1
File Interpreter ABI Platform
autograder_gen-0.1.1-py3-none-any.whl Python 3 none any Details

Release files / autograder_gen-0.1.1-py3-none-any.whl

Download URL autograder_gen-0.1.1-py3-none-any.whl
Size 81.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4fd1f00d8549837e2ac0e29d8d40fa9241767db3e5d775b25cd4cdde5b734476
BLAKE2b-256 checksum
How to use checksums
1a36af7ef3c8d020228afc2fd9f4c6584560d261ae4a2717ab00f786636173bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release history Release notifications | RSS feed

0.1.2

1 release file

This release

0.1.1 This release

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page