Skip to main content

Assess your students' work with all of the delight and none of the tedium

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.4.0.tar.gz (16.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

markten-0.4.0-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

File details

Details for the file markten-0.4.0.tar.gz.

File metadata

  • Download URL: markten-0.4.0.tar.gz
  • Upload date:
  • Size: 16.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.11.11 Linux/6.8.0-1021-azure

File hashes

Hashes for markten-0.4.0.tar.gz
Algorithm Hash digest
SHA256 38eca7cef7db672a1d8ad9a964dbe8161bec5f87483ce37d5fb2f3e9b74db3ae
MD5 fad734f7ee0e079d40a4455cf37e1e7c
BLAKE2b-256 c3799ab3849fdb27392eb5a89851bb599230992384ec9bb5e9fd9e8147f6cf01

See more details on using hashes here.

File details

Details for the file markten-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: markten-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 23.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.11.11 Linux/6.8.0-1021-azure

File hashes

Hashes for markten-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8fbe91f45338f1aefd478fd95c6ef8c640b8d9fb85348a11e3635bc3290e762a
MD5 6e62a8f68cf82df8afbb88d08e67b9b7
BLAKE2b-256 82d212b23d5e4fe227241b7dcdf27bd81891395633411b031ab307927c98bb33

See more details on using hashes here.

Supported by

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