Submit Assignments encrypted as github gist
Project description
submit — Homework submission tools
Small Python tools to prepare and submit homework assignments:
- Online submission: uploads a (optionally encrypted) bundle as a private GitHub Gist via the GitHub CLI (
gh). - Offline submission: creates a ZIP file you can upload manually.
Implementation:
- Online entrypoint:
submit.submit:run(function:submit.submit.run) - Offline implementation:
submit.submit_offline.main
Workspace files
- Configuration template/example: submit.cfg
- Example payload files: testdatei1.txt, testdatei2.txt
- Package metadata / entrypoints: pyproject.toml
- Included public key: src/submit/gpg/htw.asc (defaults in
submit.gpg.public_key_nameandsubmit.gpg.public_key_file)
Requirements
- Python >= 3.10 (see .python-version)
- Online submission:
curlinstalledghinstalled (the github cli)- authenticated (
gh auth login) or runsubmit --authorizeor provide a token from github via the environment variableGH_TOKEN
- Encryption:
gpginstalled
The online tool checks required CLIs in submit.submit.check_tools and installs/verifies the default public key via submit.submit.check_default_gpg_key.
Installation
This project defines a console script entrypoint in pyproject.toml:
submit→submit.submit:run
Install into your environment using your preferred tool (pip/uv/etc.), then run submit from the directory that contains your assignment’s submit.cfg.
Configuration (submit.cfg)
Place a submit.cfg in the directory you want to submit from.
Minimal example (same structure as submit.cfg):
[Uebung]
aufgabe = 99
[Abgeben]
datei1 = testdatei1.txt
datei2 = testdatei2.txt
Notes:
[Uebung].aufgabemust be an integer $0 \leq \text{aufgabe} \leq 99$.- Under
[Abgeben], all files must exist, otherwise submission aborts (seesubmit.submit.check_local_config/submit.submit_offline.checklocalconfig).
Usage
Online (default)
From the directory containing submit.cfg:
submit
This will:
- copy the files listed in
[Abgeben]to a temp directory (seesubmit.submit.copy_files) - encrypt them by default (see
submit.submit.encrypt) - create a private gist upload (see
submit.submit.submit)
Offline (create ZIP for manual upload)
This mode should only be used when promped by the lecture.
From the directory containing submit.cfg:
submit --offline
This will:
- copy the files listed in
[Abgeben]to a temp directory (seesubmit.submit_offline.copyfiles) - (by default) encrypt them (see
submit.submit_offline.encrypt) - create a ZIP in your current directory (see
submit.submit_offline.submit)
Disable encryption (offline only):
submit --offline --no-encryption
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file submit_sebastian_stigler-1.3.0.tar.gz.
File metadata
- Download URL: submit_sebastian_stigler-1.3.0.tar.gz
- Upload date:
- Size: 8.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
882b269b1b5d5cc11c0b5f1536c3aa87bf96b910b7de7eb6da40dd86ae076ed6
|
|
| MD5 |
7549e42b0435d9f52828072ff5622cfc
|
|
| BLAKE2b-256 |
f8745cd349abaf6c2896f4028bb53c2e6f7465ba0bbc1707216547530034f9e3
|
File details
Details for the file submit_sebastian_stigler-1.3.0-py3-none-any.whl.
File metadata
- Download URL: submit_sebastian_stigler-1.3.0-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f8aa9860c7abf38cd31cbc0dcbf79d5f2bbf65ebb5f5abaebf78a810e1dda627
|
|
| MD5 |
c439b97ffecf103ac47b76a7945da658
|
|
| BLAKE2b-256 |
8eed5ad1c917698d6013a222ab42c63602636839ae4054f919bef445fb29a954
|