Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

markten-0.1.1.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

markten-0.1.1-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

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

Hashes for markten-0.1.1.tar.gz
Algorithm Hash digest
SHA256 9562fb73170463215b1e7208b090230bd117135a7369eb7d5be2165c9072eaa5
MD5 47e89035f14d022b728a1ef64f1d7a9a
BLAKE2b-256 5384b6cd1111ff071651b5685feb69cb2ab58ef9bce76f41f2ad57c0364cf882

See more details on using hashes here.

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

Hashes for markten-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8fb31daaa48e34a2fc191a9fd2e842cd6dec361c65fe75c8a10f03c091729457
MD5 610db97783f04ef1724f8ea555461452
BLAKE2b-256 83ca3225ce1d76ec7d2c5e8f3f3ac260f3eec5ba59b9880f335c093d806ac09f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page