Metadata-Version: 2.4
Name: otter-grader
Version: 6.1.5
Summary: A Python and R autograding solution
License: BSD-3-Clause
License-File: LICENSE
Author: Christopher Pyles
Author-email: cpyles@berkeley.edu
Requires-Python: >=3.9,<4.0
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Provides-Extra: grading
Provides-Extra: plugins
Provides-Extra: r
Requires-Dist: click (>=8.1.7,<9.0.0)
Requires-Dist: dill (>=0.3.0)
Requires-Dist: fica (>=0.4.1)
Requires-Dist: google-api-python-client ; extra == "plugins"
Requires-Dist: google-auth-oauthlib ; extra == "plugins"
Requires-Dist: gspread ; extra == "plugins"
Requires-Dist: ipykernel ; extra == "grading"
Requires-Dist: ipylab (>=1.0.0,<2.0.0)
Requires-Dist: ipython
Requires-Dist: ipywidgets (>=8.1.5,<9.0.0)
Requires-Dist: jinja2 (>=3.1,<4.0)
Requires-Dist: jupyter_client ; extra == "grading"
Requires-Dist: jupytext (>=1.16.4,<2.0.0)
Requires-Dist: nbconvert[webpdf] (>=6.0.0) ; sys_platform != "emscripten" and sys_platform != "wasi"
Requires-Dist: nbformat (>=5.0.0)
Requires-Dist: pandas (>=2.0.0)
Requires-Dist: pypdf ; extra == "grading"
Requires-Dist: python-on-whales (>=0.72.0,<1.0.0)
Requires-Dist: pyyaml (>=6,<7)
Requires-Dist: requests (>=2.31,<3.0)
Requires-Dist: rpy2 (>=3.5.16,<4.0.0) ; extra == "r"
Requires-Dist: six ; extra == "plugins"
Requires-Dist: wrapt (>=1.16.0,<2.0.0)
Project-URL: Documentation, https://otter-grader.readthedocs.io/
Project-URL: Homepage, https://otter-grader.readthedocs.io/
Project-URL: Repository, https://github.com/ucbds-infra/otter-grader
Description-Content-Type: text/markdown

# Otter-Grader

[![PyPI](https://img.shields.io/pypi/v/otter-grader.svg)](https://pypi.org/project/otter-grader/)
[![DOI](https://zenodo.org/badge/208363438.svg)](https://zenodo.org/badge/latestdoi/208363438)
[![Run tests](https://github.com/ucbds-infra/otter-grader/actions/workflows/run-tests.yml/badge.svg)](https://github.com/ucbds-infra/otter-grader/actions/workflows/run-tests.yml)
[![Coverage Status](https://coveralls.io/repos/github/ucbds-infra/otter-grader/badge.svg?branch=master)](https://coveralls.io/github/ucbds-infra/otter-grader?branch=master)
[![Documentation Status](https://readthedocs.org/projects/otter-grader/badge/?version=latest)](https://otter-grader.readthedocs.io/en/latest/?badge=latest)
[![Slack](https://img.shields.io/endpoint?logo=slack&url=https%3A%2F%2Fraw.githubusercontent.com%2Fucbds-infra%2Fotter-grader%2Fmaster%2Fslack-shields.json)](https://join.slack.com/t/otter-grader/shared_invite/zt-3drxla0ox-IWYIREOYmKhwL1XTyGQE4Q)

Otter Grader is a light-weight, modular open-source autograder developed by the Data Science 
Education Program at UC Berkeley. It is designed to work with classes at any scale by abstracting 
away the autograding internals in a way that is compatible with any instructor's assignment 
distribution and collection pipeline. Otter supports local grading through parallel Docker 
containers, grading using the autograder platforms of 3rd party learning management systems (LMSs), 
the deployment of an Otter-managed grading virtual machine, and a client package that allows 
students to run public checks on their own machines. Otter is designed to grade Python scripts and 
Jupyter Notebooks, and is compatible with a few different LMSs, including Canvas and Gradescope.

## Documentation

The documentation for Otter can be found [here](https://otter-grader.rtfd.io).

## Contributing

See [`CONTRIBUTING.md`](CONTRIBUTING.md).

## Changelog

See [`CHANGELOG.md`](CHANGELOG.md).

