https://github.com/berkeley-cs61b/bsag
A Better Simple AutoGrader
https://github.com/berkeley-cs61b/bsag
Last synced: 5 months ago
JSON representation
A Better Simple AutoGrader
- Host: GitHub
- URL: https://github.com/berkeley-cs61b/bsag
- Owner: Berkeley-CS61B
- License: mit
- Created: 2022-12-07T07:23:16.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-03T05:59:47.000Z (over 1 year ago)
- Last Synced: 2024-11-12T10:14:26.677Z (over 1 year ago)
- Language: Python
- Homepage:
- Size: 248 KB
- Stars: 2
- Watchers: 5
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# BSAG (Better Simple AutoGrader)
A Gradescope autograder with a focus on simplicity, extensibility, and
correctness.
## Notice
**This package is currently under active development! It's probably broken.**
I'm working as fast as I can to un-break it and add features.
Once I've verified that I can run an autograder, I will publish it on PyPI.
## Architecture Summary
BSAG is based on sequential execution of "steps". A step defines and accepts a
*configuration*, performs some computation, and possibly modifies stored data.
BSAG uses [Pydantic](https://docs.pydantic.dev/) for config parsing and typing,
and parses YAML for ease of writing.
A more detailed description can be found in [ARCHITECTURE.md](ARCHITECTURE.md).
## Usage
BSAG is primarily meant to be used as a
[Gradescope autograder](https://gradescope-autograders.readthedocs.io/en/latest/),
on any system using at least Python 3.10.
BSAG provides a small suite of default steps, and can be run with simply:
```shell
python -m bsag --config
```
To provide your own custom step definitions, you can define your own entry
point and provide your modules at runtime:
```python
import bsag
bsag.main([MyCustomStep])
```