A simple Python utility for converting the weekly assignment PDF by the "Staatsanwaltschaft Freiburg"
Project description
sitzungsdienst
A simple Python utility for converting the weekly assignment PDF by the "Staatsanwaltschaft Freiburg" into csv
, json
as well as ics
files.
Getting started
Running setup.bash
will install all dependencies inside a virtual environment, ready for action:
# Set up & activate virtualenv
virtualenv -p python3 venv
# shellcheck disable=SC1091
source venv/bin/activate
# Install dependencies
python -m pip install --editable .
Usage
Using this library is straightforward:
$ sta --help
Usage: sta [OPTIONS] SOURCE
Extract weekly assignments from SOURCE file.
Options:
-o, --output PATH Output filename, without extension.
-d, --directory TEXT Output directory.
-f, --file-format TEXT File format, "csv", "json" or "ics".
-q, --query TEXT Query assignees, eg for name, department.
-i, --inquiries FILENAME JSON file with parameters for automation.
-c, --clear-cache Remove existing files in directory first.
-v, --verbose Enable verbose mode.
--version Show the version and exit.
--help Show this message and exit.
The following code snippet provides a very basic batch processing example:
#!/bin/bash
# Create multiple calendar files at once
for arg; do
sta -f ics -q "$arg" -o "$arg" source.pdf
done
Calling this script with something like bash script.bash alice bob charlie
would give you alice.ics
, bob.ics
and charlie.ics
, each containing their respective assignments.
However, you might want to store these information inside a json
file and pass it via --inquiries
:
[
{
"output": "study-group",
"query": [
"123",
"456",
"789"
]
},
{
"output": "alice",
"query": [
"123"
]
},
{
"output": "bob",
"query": [
"456"
]
},
{
"output": "all-events",
"query": []
}
]
The output
property resembles the filename whereas query
contains all search terms. Therefore, the first entry is equivalent to this command: sta -o study-group -q 123 -q 456 -q 789 source.pdf
.
Example
After installing this package, eg with pip install sitzungsdienst
, the underlying module may also be used directly:
from sitzungsdienst import Sitzungsdienst
# Pass file path (or its stream)
sta = Sitzungsdienst(file_path)
# Retrieve data
data = sta.data
# Use a subset by filtering it
filtered = sta.filter(['alice', 'bob'])
If you want to see it in action, head over to the sitzungsapp
!
Happy coding!
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
File details
Details for the file sitzungsdienst-1.6.1.tar.gz
.
File metadata
- Download URL: sitzungsdienst-1.6.1.tar.gz
- Upload date:
- Size: 21.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52c53fcb61a7675c676c49545663ff3c365877d1ace37097ff10014e937d7e6e |
|
MD5 | 076b89a5bc1a03cd67b9c5bc2030bcf3 |
|
BLAKE2b-256 | fd88394e303f32c073d273b31b4e6d6b64cacc7a3f160a8609142d58e4a41570 |
File details
Details for the file sitzungsdienst-1.6.1-py3-none-any.whl
.
File metadata
- Download URL: sitzungsdienst-1.6.1-py3-none-any.whl
- Upload date:
- Size: 21.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.4.2 requests/2.25.1 setuptools/52.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9f523122b2f4f5ae5fd0656a0b27913ca8173d2c0317fcac775858bb69b1ac0 |
|
MD5 | 34eaab1ef6c21adeb549cce09a29e5d7 |
|
BLAKE2b-256 | 91be1279816f120286b27876b46a0b2c573efc5a8e040d09e621821faff4c52d |