markten


Namemarkten JSON
Version 0.2.1 PyPI version JSON
download
home_pagehttps://github.com/COMP1010UNSW/MarkTen
SummaryAssess your students' work with all of the delight and none of the tedium
upload_time2025-02-18 10:05:12
maintainerNone
docs_urlNone
authorMaddy Guthridge
requires_python>=3.11
licenseMIT
keywords marking auto-marker automation xmark imark mark ten
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": "https://github.com/COMP1010UNSW/MarkTen",
    "name": "markten",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "marking, auto-marker, automation, xmark, imark, mark, ten",
    "author": "Maddy Guthridge",
    "author_email": "hello@maddyguthridge.com",
    "download_url": "https://files.pythonhosted.org/packages/38/90/f01a031969afab6c20b7e578dc269636787eb4fc0286f369e65c1a6bf0bd/markten-0.2.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": "Assess your students' work with all of the delight and none of the tedium",
    "version": "0.2.1",
    "project_urls": {
        "Bug Tracker": "https://github.com/COMP1010UNSW/MarkTen/issues",
        "Homepage": "https://github.com/COMP1010UNSW/MarkTen",
        "Repository": "https://github.com/COMP1010UNSW/MarkTen"
    },
    "split_keywords": [
        "marking",
        " auto-marker",
        " automation",
        " xmark",
        " imark",
        " mark",
        " ten"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "397825a20f08059723a9f109f6df0e3932aa4c1925c8178a35459005c0999b0d",
                "md5": "e6eae3e5ee93fa97a678e369f3fb3f86",
                "sha256": "960d65ddfdd24bd5c8869aabe0e1b0d57c2fd1c25d04eb27b86a66b516029108"
            },
            "downloads": -1,
            "filename": "markten-0.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e6eae3e5ee93fa97a678e369f3fb3f86",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 20027,
            "upload_time": "2025-02-18T10:05:10",
            "upload_time_iso_8601": "2025-02-18T10:05:10.747240Z",
            "url": "https://files.pythonhosted.org/packages/39/78/25a20f08059723a9f109f6df0e3932aa4c1925c8178a35459005c0999b0d/markten-0.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3890f01a031969afab6c20b7e578dc269636787eb4fc0286f369e65c1a6bf0bd",
                "md5": "fceea8497b5202b5816df8b910730c7e",
                "sha256": "e28b884ff63bd44281c8d1c0752e950d807e6867942bd511f350a7c0281ca5ee"
            },
            "downloads": -1,
            "filename": "markten-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "fceea8497b5202b5816df8b910730c7e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 14420,
            "upload_time": "2025-02-18T10:05:12",
            "upload_time_iso_8601": "2025-02-18T10:05:12.499003Z",
            "url": "https://files.pythonhosted.org/packages/38/90/f01a031969afab6c20b7e578dc269636787eb4fc0286f369e65c1a6bf0bd/markten-0.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-18 10:05:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "COMP1010UNSW",
    "github_project": "MarkTen",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "markten"
}
        
Elapsed time: 1.20248s