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.38.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.38-py3-none-any.whl (116.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kthutils-1.38.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.38.tar.gz
Algorithm Hash digest
SHA256 055fa098d0ff4e049f0da475297bfe3fe3d95a056b3f486dc7967c3846e9035a
MD5 cedf5ab69f0043cdb4dc2fef9aceb6c1
BLAKE2b-256 da613d78f2a48b232ebc6f3a7a5555416853db9be74ae33234362425bac2855b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kthutils-1.38-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.38-py3-none-any.whl
Algorithm Hash digest
SHA256 504e4d0f4320946e66657d82be2b7699c17e206619f1f8c0d3f8ec5def199ed1
MD5 792b7c08c22c0b6f7e1496eb3197bad3
BLAKE2b-256 c3355bf7e37d98a77563aac53a478844ce61171d8462f9a5c4e640bf647343f5

See more details on using hashes here.

Release history Release notifications | RSS feed

1.39

2 files

This release

1.38 This release

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