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
Metadata
Release files for submit-sebastian-stigler 1.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| submit_sebastian_stigler-1.3.0.tar.gz | 8.5 kB | Without provenance | Details for submit_sebastian_stigler-1.3.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| submit_sebastian_stigler-1.3.0-py3-none-any.whl | Python 3 | none | any | Details for submit_sebastian_stigler-1.3.0-py3-none-any.whl |
Total release size: 19.7 kB
Release files / submit_sebastian_stigler-1.3.0.tar.gz
| Download URL | submit_sebastian_stigler-1.3.0.tar.gz |
|---|---|
| Size | 8.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
882b269b1b5d5cc11c0b5f1536c3aa87bf96b910b7de7eb6da40dd86ae076ed6
|
|
BLAKE2b-256 checksum How to use checksums |
f8745cd349abaf6c2896f4028bb53c2e6f7465ba0bbc1707216547530034f9e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / submit_sebastian_stigler-1.3.0-py3-none-any.whl
| Download URL | submit_sebastian_stigler-1.3.0-py3-none-any.whl |
|---|---|
| Size | 11.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f8aa9860c7abf38cd31cbc0dcbf79d5f2bbf65ebb5f5abaebf78a810e1dda627
|
|
BLAKE2b-256 checksum How to use checksums |
8eed5ad1c917698d6013a222ab42c63602636839ae4054f919bef445fb29a954
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Security for submit-sebastian-stigler 1.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.