A framework for automating the process of manual marking in bulk
Project description
MarkTen
Assess your students' work with all of the delight and none of the tedium.
Installing
$ pip install markten
...
Successfully installed markten-0.1.0
Or to install in an independent environment, you can use pipx
:
$ pipx install markten
installed package markten 0.1.0, installed using Python 3.12.6
These apps are now globally available
- markten
done! ✨ 🌟 ✨
Running recipes
You can execute the recipe directly, like you would any Python script:
$ python my_recipe.py
...
You can also use the markten
executable if you want to keep markten
's
dependencies in an isolated environment. The Python script you provide as
an argument is executed within that environment.
$ markten my_recipe.py
...
How it works
Define your recipe parameters. For example, this recipe takes in git repo names from stdin.
from markten import Recipe, parameters, actions
marker = Recipe("Clone COMP1010 repos")
marker.parameter("repo", parameters.stdin("Repo name"))
Write simple marking recipes by defining simple functions for each step.
# Functions can take arbitrary parameters
def setup(repo: str):
"""Set up marking environment"""
# Clone the given git repo to a temporary directory
directory = actions.git.clone(f"git@github.com:COMP1010UNSW/{repo}.git")
return {
"directory": directory,
}
marker.step("Clone repo", setup)
The parameters returned by your previous steps can be used in later steps, just by giving the function parameters the same name.
def open_code(directory: Path):
"""Open the cloned git repo in VS Code"""
return actions.editor.vs_code(directory)
marker.step("View in VS Code", open_code)
Then run the recipe. It'll run for every permutation of your parameters, making it easy to mark in bulk.
marker.run()
For more examples, see the examples directory.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file markten-0.1.1.tar.gz
.
File metadata
- Download URL: markten-0.1.1.tar.gz
- Upload date:
- Size: 13.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.11.10 Linux/6.8.0-1014-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9562fb73170463215b1e7208b090230bd117135a7369eb7d5be2165c9072eaa5 |
|
MD5 | 47e89035f14d022b728a1ef64f1d7a9a |
|
BLAKE2b-256 | 5384b6cd1111ff071651b5685feb69cb2ab58ef9bce76f41f2ad57c0364cf882 |
File details
Details for the file markten-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: markten-0.1.1-py3-none-any.whl
- Upload date:
- Size: 19.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.11.10 Linux/6.8.0-1014-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8fb31daaa48e34a2fc191a9fd2e842cd6dec361c65fe75c8a10f03c091729457 |
|
MD5 | 610db97783f04ef1724f8ea555461452 |
|
BLAKE2b-256 | 83ca3225ce1d76ec7d2c5e8f3f3ac260f3eec5ba59b9880f335c093d806ac09f |