Skip to main content

This package provides various utilities for automation at KTH. It provides the following modules:

  • kthutils.ug
    Access the UG editor through Python.

  • kthutils.participants
    Read expected course participants through Python.

  • kthutils.iprange
    Read IP ranges for computers in lab rooms.

  • kthutils.forms
    Read forms data (CSV) from KTH Forms.

  • kthutils.stayawhile
    Access the Stay A While queue API.

  • kthutils.onedrive Read, write, browse, and publish content in KTH OneDrive and SharePoint.

We also provide a command-line interface for the modules. This means that the functionality can be accessed through both Python and the shell.

OneDrive and SharePoint

The kthutils onedrive commands reuse the shared Ladok3 login session, so no separate cookie import or login bootstrap is needed.

Supported URL forms include:

  • full SharePoint and OneDrive URLs
  • SharePoint copy links for files and folders
  • Forms/AllItems.aspx folder URLs
  • shared links of the form /shared?id=...
  • Doc2.aspx?sourcedoc=... document links for downloads
  • server-relative paths such as /sites/... and /personal/...
  • shorthands such as kth:site-name, kth-my:user_ug_kth_se, and bare site or OneDrive names

Available onedrive commands include:

  • kthutils onedrive ls URL
  • kthutils onedrive ls --long URL
  • kthutils onedrive tree URL [MAX_DEPTH]
  • kthutils onedrive folders URL [MAX_DEPTH]
  • kthutils onedrive get URL [OUTPUT]
  • kthutils onedrive put LOCAL_FILE URL
  • kthutils onedrive page publish SITE_URL HTML_FILE

Examples:

kthutils onedrive ls kth:example
kthutils onedrive tree "https://kth.sharepoint.com/sites/example/Shared%20Documents"
kthutils onedrive get "https://kth.sharepoint.com/sites/example/_layouts/15/Doc2.aspx?sourcedoc=%7B...%7D"
kthutils onedrive page publish kth:example update.html --page-name weekly-update --title "Weekly update"

The page-publishing command creates or updates a modern SharePoint page, saves the HTML content as a draft rich-text canvas, and publishes it to SitePages.

SharePoint URL parsing, browsing ideas, and page-publishing flow adapt ideas from prototype scripts by Alexander Baltatzis.

An example

We want to add the user dbosk as teacher in the group

edu.courses.DD.DD1317.20232.1.teachers.

In Python, we would do

import kthutils.credentials
import kthutils.ug

ug = kthutils.ug.UGsession(*kthutils.credentials.get_credentials())

group = ug.find_group_by_name("edu.courses.DD.DD1317.20232.1.teachers")
user = ug.find_user_by_username("dbosk")

ug.add_group_members([user["kthid"]], group["kthid"])

In the shell, we would do

kthutils ug members add edu.courses.DD.DD1317.20232.1.teachers dbosk

Installation and documentation

Install the tools using pip:

python3 -m pip install -U kthutils

You can read the documentation by running pydoc on the package:

python3 -m pydoc kthutils

Download files

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

Source Distribution

kthutils-1.39.tar.gz (133.7 kB view details)

Uploaded Source

Built Distribution

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

kthutils-1.39-py3-none-any.whl (116.9 kB view details)

Uploaded Python 3

File details

Details for the file kthutils-1.39.tar.gz.

File metadata

  • Download URL: kthutils-1.39.tar.gz
  • Upload date:
  • Size: 133.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.4 CPython/3.13.7 Linux/6.17.0-41-generic

File hashes

Hashes for kthutils-1.39.tar.gz
Algorithm Hash digest
SHA256 d1c513a713959f4f55429b86caccac20559391017bcd90f5e2da28f2d91abe8e
MD5 ad8ff1b2d67895d26f60b8312b141d9a
BLAKE2b-256 c4c91fe0f603e840335f99b814ca8fdc0db56fa472d4776c176acf1f86cb5d65

See more details on using hashes here.

File details

Details for the file kthutils-1.39-py3-none-any.whl.

File metadata

  • Download URL: kthutils-1.39-py3-none-any.whl
  • Upload date:
  • Size: 116.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.4 CPython/3.13.7 Linux/6.17.0-41-generic

File hashes

Hashes for kthutils-1.39-py3-none-any.whl
Algorithm Hash digest
SHA256 41704fedeee6168c6a2e92b3c10ba546ed2b76023f329a4fdb931f6138292de9
MD5 33b66c8f8f48f88fc680bb9acb9eb97d
BLAKE2b-256 db4cea1cacda2093c9fdcede8776918f185cb19934a0c32227f2badd16f069c3

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.39 This release

2 files

1.38

2 files

1.37

2 files

1.36

2 files

1.35

2 files

1.34

2 files

1.32

2 files

1.31

2 files

1.30

2 files

1.29

2 files

1.28

2 files

1.27

2 files

1.26

2 files

1.25

2 files

1.24

2 files

1.23

2 files

1.22

2 files

1.21

2 files

1.20

2 files

1.19

2 files

1.18

2 files

1.17

2 files

1.16

2 files

1.15

2 files

1.13

2 files

1.12

2 files

1.11

2 files

1.10

2 files

1.9

2 files

1.8

2 files

1.7

2 files

1.6

2 files

1.5

2 files

1.4

2 files

1.3

2 files

1.2

2 files

1.1

2 files

1.0

2 files

0.2

2 files

0.1

2 files

Supported by

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