Name | markten JSON |
Version |
0.1.1
JSON |
| download |
home_page | None |
Summary | A framework for automating the process of manual marking in bulk |
upload_time | 2024-10-02 06:12:36 |
maintainer | None |
docs_url | None |
author | Maddy Guthridge |
requires_python | <4.0,>=3.11 |
license | MIT |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# MarkTen
Assess your students' work with all of the delight and none of the tedium.
## Installing
```bash
$ pip install markten
...
Successfully installed markten-0.1.0
```
Or to install in an independent environment, you can use `pipx`:
```bash
$ 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:
```sh
$ 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.
```sh
$ markten my_recipe.py
...
```
## How it works
Define your recipe parameters. For example, this recipe takes in git repo names
from stdin.
```py
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.
```py
# 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.
```py
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.
```py
marker.run()
```
For more examples, see the examples directory.
Raw data
{
"_id": null,
"home_page": null,
"name": "markten",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.11",
"maintainer_email": null,
"keywords": null,
"author": "Maddy Guthridge",
"author_email": "hello@maddyguthridge.com",
"download_url": "https://files.pythonhosted.org/packages/53/84/b6cd1111ff071651b5685feb69cb2ab58ef9bce76f41f2ad57c0364cf882/markten-0.1.1.tar.gz",
"platform": null,
"description": "# MarkTen\n\nAssess your students' work with all of the delight and none of the tedium.\n\n## Installing\n\n```bash\n$ pip install markten\n...\nSuccessfully installed markten-0.1.0\n```\n\nOr to install in an independent environment, you can use `pipx`:\n\n```bash\n$ pipx install markten\n installed package markten 0.1.0, installed using Python 3.12.6\n These apps are now globally available\n - markten\ndone! \u2728 \ud83c\udf1f \u2728\n```\n\n## Running recipes\n\nYou can execute the recipe directly, like you would any Python script:\n\n```sh\n$ python my_recipe.py\n...\n```\n\nYou can also use the `markten` executable if you want to keep `markten`'s \ndependencies in an isolated environment. The Python script you provide as\nan argument is executed within that environment.\n\n```sh\n$ markten my_recipe.py\n...\n```\n\n## How it works\n\nDefine your recipe parameters. For example, this recipe takes in git repo names\nfrom stdin.\n\n```py\nfrom markten import Recipe, parameters, actions\n\nmarker = Recipe(\"Clone COMP1010 repos\")\n\nmarker.parameter(\"repo\", parameters.stdin(\"Repo name\"))\n```\n\nWrite simple marking recipes by defining simple functions for each step.\n\n```py\n# Functions can take arbitrary parameters\ndef setup(repo: str):\n \"\"\"Set up marking environment\"\"\"\n # Clone the given git repo to a temporary directory\n directory = actions.git.clone(f\"git@github.com:COMP1010UNSW/{repo}.git\")\n return {\n \"directory\": directory,\n }\n\nmarker.step(\"Clone repo\", setup)\n```\n\nThe parameters returned by your previous steps can be used in later steps, just\nby giving the function parameters the same name.\n\n```py\ndef open_code(directory: Path):\n \"\"\"Open the cloned git repo in VS Code\"\"\"\n return actions.editor.vs_code(directory)\n\nmarker.step(\"View in VS Code\", open_code)\n```\n\nThen run the recipe. It'll run for every permutation of your parameters, making\nit easy to mark in bulk.\n\n```py\nmarker.run()\n```\n\nFor more examples, see the examples directory.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A framework for automating the process of manual marking in bulk",
"version": "0.1.1",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "83ca3225ce1d76ec7d2c5e8f3f3ac260f3eec5ba59b9880f335c093d806ac09f",
"md5": "610db97783f04ef1724f8ea555461452",
"sha256": "8fb31daaa48e34a2fc191a9fd2e842cd6dec361c65fe75c8a10f03c091729457"
},
"downloads": -1,
"filename": "markten-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "610db97783f04ef1724f8ea555461452",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.11",
"size": 18970,
"upload_time": "2024-10-02T06:12:35",
"upload_time_iso_8601": "2024-10-02T06:12:35.630507Z",
"url": "https://files.pythonhosted.org/packages/83/ca/3225ce1d76ec7d2c5e8f3f3ac260f3eec5ba59b9880f335c093d806ac09f/markten-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5384b6cd1111ff071651b5685feb69cb2ab58ef9bce76f41f2ad57c0364cf882",
"md5": "47e89035f14d022b728a1ef64f1d7a9a",
"sha256": "9562fb73170463215b1e7208b090230bd117135a7369eb7d5be2165c9072eaa5"
},
"downloads": -1,
"filename": "markten-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "47e89035f14d022b728a1ef64f1d7a9a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.11",
"size": 13558,
"upload_time": "2024-10-02T06:12:36",
"upload_time_iso_8601": "2024-10-02T06:12:36.545575Z",
"url": "https://files.pythonhosted.org/packages/53/84/b6cd1111ff071651b5685feb69cb2ab58ef9bce76f41f2ad57c0364cf882/markten-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-02 06:12:36",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "markten"
}