Skip to main content

tubtools

A collection of scrapers for the TU Berlin web services. They are mostly intended for purposes of automating reoccurring tasks in teaching at TU Berlin. We provide commandline utilities for convenient scripting.

Login credentials can be saved securely using the keyring package.

Installation

This is a python package that can be installed using pip:

git clone git@git.tu-berlin.de:tkn/tubtools.git
cd tubtools
sudo -H pip install .

ISIS

  • Search for courses by name with isis search
  • Download assignment submissions for a course with isis dl
    • Auto-extracts '.tar.gz' and 'zip' submissions
    • By default, this assumes group submissions with one archive file
  • Look up course participants and their group membership with isis pt
  • Download grading tables from a course e.g. to see who passed with ìsis grading
  • Modify group membership with isis groups

Moses

  • Look up a person on Moses with moses ppl including their email and student id. Batch processing of emails / student id / usernames with the --batch flag, e.g. if you have a list of student ids and want to email them.

NOTE: This requires administrator role in Moses. You should see the 'Administration' tab in the top.

Examples

# Find course id of `Rechnernetze und Verteilte Systeme (no login required)
isis search "Rechnernetze und Verteilte Systeme"

# Count number of participants in course 21032
isis pt -u MyUserName -r 'Teilnehmer/in' 21032 | wc -l 

# Find all group members of group T01G01
isis pt -u MyUserName -G "T01G01" 21032

# This is also possible with the groups command
# Probably faster, but less detailed information 
isis groups -u MyUserName -g "T01G01" --show 21032

# You can add somebody to a group via their email
isis groups -u MyUserName -g "T01G01" --add braeuer@tu-berlin.de 21032

# ..or via their student id (if you are a TU Berlin staff member) 
isis groups -u MyUserName -g "T01G01" --add 349829 21032

# A batch mode is also available, which might be useful for assigning lots of ppl to one group 
isis groups -u MyUserName -g "QISPOS-angemeldet" --batch-add 21032 < ids_from_qispos.txt

# Download all group submissions for a selected assignment (interactive)
isis dl -u MyUserName 21032 

# Copy the student id of all students that passed more than 3 out of 5 programming 
# assignments in the RNVS course to the clipboard

isis grading -u MyUserName --no-feedback -f "Abgabe" 21032 \
| awk -F "," '$8 + $9 + $10 + $11 + $12 >= 3 {print $6}' \
| sed 's/^16900//g' \
| xclip -selection clipboard

# This filters all gradings that start with 'Abgabe'.
# awk sums the relevant columns and prints the student id
# sed filters the irrelevant prefix 16900
# xclip puts it into the clipboard

# Get the emails to all student ids that you have in a file
moses ppl -u MyUserName --batch id --extended < need_to_be_notified.txt

# Find out who is named Bräuer in the university
moses ppl -u MyUserName --surname Bräuer

Metadata

Release files for tubtools 0.1.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tubtools 0.1.9
File Size Uploaded
tubtools-0.1.9.tar.gz 17.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tubtools 0.1.9
File Interpreter ABI Platform
tubtools-0.1.9-py3-none-any.whl Python 3 none any Details

Total release size: 38.7 kB

Release files / tubtools-0.1.9.tar.gz

Download URL tubtools-0.1.9.tar.gz
Size 17.9 kB
Tags Source
SHA-256 checksum
How to use checksums
f0ed3d3d24c65d39b200e69efed81fe98ab478dc6f4af3504a360dc792dca140
BLAKE2b-256 checksum
How to use checksums
c12756103ea70abb0d9153e5911294cc4eecd3af0b7492029be8c7d5ecc11ee7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.5

Release files / tubtools-0.1.9-py3-none-any.whl

Download URL tubtools-0.1.9-py3-none-any.whl
Size 20.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f2203eab1a0a7e7c516344d84fa8ce9b3b3b2c75bb1ae37fd6c75ad7f86f8fd2
BLAKE2b-256 checksum
How to use checksums
598639d8accf73ba3d10bced2c03e862212a423b22af62501147d3f31c566cdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.5

Release history Release notifications | RSS feed

This release

0.1.9 This release

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page