Skip to main content
Grader

PyPi Build Status

This program uses Docker and Python to easily grade many assignments in an encapsulated, safe manner. The general process starts by creating an image for a class or an assignment. That image can be given a payload, a protected grading script, which has a grading hooks. The grade module, when ran, creates an individual container for each student's assignment and runs a payload hook. The payload then returns a JSON response with stdin, stdout, and additional response information depending on the image ran.

Getting Started

See the tutorial for an idea of how to get started using grader.

Setup

This project is setup using buildout. It's super easy to get grader up and running:

You'll probably need the following libraries...

  • build-essential
  • libncurses-dev
  • python3-dev

And, of course, you'll want Docker if you plan to do anything interesting at all. Grader requires docker with API version >= 1.20. We use put_archive (PUT /containers/(id)/archive) from docker-py.

# Bootstrap buildout
python3 bin/bootstrap-buildout.py

# Setup your development environment with buildout
bin/buildout

Now you're done! When it sets up your environment, buildout creates a couple of executables and places them in bin/ for you. They are:

  • buildout : That's buildout. Run it whenever you add eggs to grader/setup.py or modify buildout.cfg
  • grader : That's grader!
  • python : "What? Another Python!?" Yeah... This is an ipython interpreter. It's handy because it has access to all the same packages that were installed for grader.

Check your style

It's important to keep our code looking consistent. There's a tool installed by buildout called flake8 that will check your Python source for issues in style. Simply run it like this:

  # Make sure you run this in your grader directory. flake8 will recursively check source files for style issues.
  bin/flake8 grader/

Metadata

Release files for redkyn-grader 0.1.1

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

Source distribution (sdist)

Source distribution for redkyn-grader 0.1.1
File Size Uploaded Provenance Actions
redkyn-grader-0.1.1.tar.gz 27.6 kB Without provenance Details for redkyn-grader-0.1.1.tar.gz

Release files / redkyn-grader-0.1.1.tar.gz

Download URL redkyn-grader-0.1.1.tar.gz
Size 27.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c3c94e038c6f0358933920fad21c1b8fa5960b381080ed683489d36eb910e762
BLAKE2b-256 checksum
How to use checksums
dafc8ccf3ce1bc13571004b604a7179d8f95327b693962afd754a5f1ea34ea4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.19.5 CPython/3.7.5rc1

Security for redkyn-grader 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 release file No provenance

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