Weekend 22, some QoL improvements (added wiki_to_prefs_table.py, print wiki header in output as well)

This commit is contained in:
2026-02-01 15:16:59 +01:00
parent d329748b89
commit 467bdbd56f
4 changed files with 97 additions and 65 deletions

View File

@@ -1,5 +1,5 @@
config: config:
days: 3 days: 4
weights: weights:
likes: 1 likes: 1
hates: 3 hates: 3
@@ -8,95 +8,98 @@ config:
task_re: "[ ,/]+" task_re: "[ ,/]+"
tasks: tasks:
hotemetoten: hotemetoten:
personen: [Lyra, mrngm, Pepper] personen: [Tanja, mrngm, MargotM, Eliza]
workload: 4 workload: 4
req: [1, 1, 1] req: [1, 1, 1, 1]
hardcode: hardcode:
- Lyra - Eliza
- Tanja
- MargotM
- mrngm - mrngm
- Pepper
lookup: [hotemetoten] lookup: [hotemetoten]
superkok: superkok:
req: [1, 1, 1] req: [1, 1, 1, 0]
personen: [MacGyver, Annelies, Mieksies] personen: [MacGyver, carrot, Pepper]
workload: 4 workload: 4
lookup: [superkok] lookup: [superkok]
hardcode: hardcode:
- MacGyver - MacGyver
- Annelies - carrot
- Mieksies - Pepper
snijden: snijden:
req: [2, 3, 3] req: [2, 3, 3, 0]
workload: 2 workload: 2
personen: iedereen personen: iedereen
lookup: [snijden] lookup: [snijden]
koken: koken:
req: [3, 3, 3] req: [3, 3, 3, 0]
workload: 3 workload: 3
personen: liefhebbers personen: liefhebbers
lookup: [koken, kookhulp, hulpkoken] lookup: [koken, kookhulp, hulpkoken]
afwassen: afwassen:
req: [3, 6, 6] req: [3, 6, 6, 0]
workload: 2 workload: 2
personen: iedereen personen: iedereen
lookup: [afwassen] lookup: [afwassen]
schoonmaken: schoonmaken:
req: [2, 4, 4] req: [2, 4, 4, 0]
workload: 2 workload: 2
personen: iedereen personen: iedereen
lookup: [schoonmaken] lookup: [schoonmaken]
snackdealen: snackdealen:
req: [2, 4, 4] req: [2, 4, 4, 0]
workload: 1 workload: 1
personen: iedereen personen: iedereen
lookup: [hapjes, snackdealen] lookup: [hapjes, snackdealen]
fotograferen: fotograferen:
req: [2, 3, 3] req: [2, 3, 3, 0]
workload: 2 workload: 2
personen: liefhebbers personen: liefhebbers
lookup: [fotograferen] lookup: [fotograferen]
pendelen: pendelen:
req: [1, 1, 1] req: [1, 1, 1, 0]
workload: 2 workload: 2
personen: liefhebbers personen: liefhebbers
lookup: [pendelen] lookup: [pendelen]
people: people:
- Abel - Abel
- Anita - avel
- Annelies - Blu
- Blondie - carrie
- carrot - carrot
- cuttlefish
- Dusk - Dusk
- Eliza - Eliza
- Harm #- Harm
- John - Harmen
- Joost - Laurens
- Leonie - Leonie
- lynn
- Loki
- lucus - lucus
- Lynn
- Lyra - Lyra
- Maaike - Maaike
- Mabl - Mabel
- MacGyver - MacGyver
- mapzie - Mapzie
- Margot - MargotM
- Marion
- Marlon - Marlon
- Mieksies - Mieksies
- mike
- Minnozz - Minnozz
- MrNGm - mrngm
- Nova - Nova
- PaxSum - PaxSum
- Pepper - Pepper
- petervdv - Petervdv
- PP
- Quis - Quis
- Rian - Rian
- Roflincopter - roflin
- RTB
- Sjors - Sjors
- SyntaxTerror - SyntaxTerror
- Tanja - Tanja
#- Tauri
- Thom - Thom
- Wassasin
- Weasel - Weasel
- Yorick - Yorick

View File

@@ -1,5 +1,5 @@
#! /usr/bin/env nix-shell #! /usr/bin/env nix-shell
#!nix-shell -i python3 -p python3 python3Packages.pyyaml glpk -I nixpkgs=flake:nixpkgs #!nix-shell -i python3 -p python3 python3Packages.pyyaml glpk -I nixpkgs=flake:nixpkgs --extra-experimental-features flakes
import sys import sys
import yaml import yaml
import re import re
@@ -143,6 +143,9 @@ def write_data(people, tasks, file=sys.stdout):
print(glpm.param("WL", config['weights']['likes']), file=file) print(glpm.param("WL", config['weights']['likes']), file=file)
print(glpm.param("WH", config['weights']['hates']), file=file) print(glpm.param("WH", config['weights']['hates']), file=file)
def write_tasks(people, tasks, file=sys.stdout): def write_tasks(people, tasks, file=sys.stdout):
days_tpl = " dag !!" * config['days']
print("! {} !!{} {} !! {}".format("wie", days_tpl, "vrolijkheid", "workload"), file=file)
print("|-", file=file)
for name, p in people.items(): for name, p in people.items():
days = [[] for i in range(config['days'])] days = [[] for i in range(config['days'])]
for (d,t) in p.does: for (d,t) in p.does:
@@ -151,7 +154,7 @@ def write_tasks(people, tasks, file=sys.stdout):
days_fmt = " {} ||" * len(days) days_fmt = " {} ||" * len(days)
days_filled = days_fmt.format(*map(q, days)) days_filled = days_fmt.format(*map(q, days))
print("| {} ||{} {} || {}".format(name, days_filled, p.vrolijkheid(), p.workload(tasks)), file=file) print("| {} ||{} {} || {}".format(name, days_filled, p.vrolijkheid(), p.workload(tasks)), file=file)
print("|-") print("|-", file=file)
people = read_people(conf['people']) people = read_people(conf['people'])
with open('prefs_table', 'r') as pref_file: with open('prefs_table', 'r') as pref_file:
read_prefs(pref_file, tasks, people) read_prefs(pref_file, tasks, people)

View File

@@ -1,31 +1,26 @@
Abel - pendelen Abel fotograferen, snijden, koken pendelen
Anita schoonmaken, afwassen fotograferen, pendelen avel snackdealen, fotograferen koken, snijden, afwassen
carrot koken, snijden - Blu koken schoonmaken, snackdealen
Dusk pendelen, snijden, koken afwassen, schoonmaken Carrie snijden, pendelen snackdealen, koken
Eliza schoonmaken, koken, snijden snackdealen, pendelen, afwassen Cuttlefish koken, snijden, afwassen, schoonmaken snackdealen, fotograferen
Harm pendelen, fotograferen snackdealen, schoonmaken Dusk koken schoonmaken, afwassen, snackdealen
Joost snijden fotograferen, pendelen, schoonmaken, snackdealen Laurens pendelen, koken, snijden schoonmaken, afwassen, fotograferen
Leonie koken, snijden, pendelen snackdealen, fotograferen Leonie pendelen, snijden schoonmaken, snackdealen
Loki snijden, koken, snackdealen afwassen, schoonmaken lucus snijden, koken snackdealen, schoonmaken
lucus koken, snijden schoonmaken, snackdealen lynn snackdealen schoonmaken, koken, afwassen, snijden
lynn koken, snackdealen, schoonmaken afwassen, snijden, koken Lyra schoonmaken, afwassen, snackdealen snijden, koken
Maaike snijden, koken, afwassen snackdealen, fotograferen, pendelen Maaike afwassen schoonmaken, snackdealen
Mabl snijden, schoonmaken fotograferen, pendelen, snackdealen Mabel schoonmaken, afwassen snackdealen, koken
mapzie snackdealen snijden, koken, schoonmaken, afwassen Marlon koken, snijden, snackdealen schoonmaken, afwassen
Margot snijden, koken, afwassen snackdealen, schoonmaken Minnozz fotograferen, snijden schoonmaken, afwassen
Marion snijden, koken, afwassen snackdealen, fotograferen, schoonmaken Nova pendelen, koken, snijden schoonmaken, afwassen, snackdealen
Marlon koken, snijden afwassen, schoonmaken PaxSum koken, snijden schoonmaken, snackdealen
Minnozz fotograferen, snijden schoonmaken, afwassen Petervdv pendelen, snackdealen snijden, koken, afwassen, fotograferen
Nova pendelen, koken, snijden snackdealen, fotograferen, schoonmaken PP koken, snijden snackdealen
PaxSum snijden, koken, afwassen fotograferen, snackdealen Quis snijden schoonmaken, fotograferen
petervdv snackdealen, pendelen - Rian afwassen, snijden schoonmaken, snackdealen
Quis snackdealen, koken, snijden fotograferen, schoonmaken roflin afwassen schoonmaken snackdealen koken
Rian snijden, afwassen snackdealen, fotograferen, pendelen SyntaxTerror schoonmaken, afwassen koken, pendelen, snackdealen
Roflincopter schoonmaken, afwassen koken Thom afwassen fotograferen, snackdealen
Sjors pendelen, snackdealen koken, afwassen Weasel fotograferen, snijden koken, schoonmaken
SyntaxTerror snijden, schoonmaken, afwassen snackdealen, pendelen Yorick snijden, koken snackdealen
Tanja snijden, koken, afwassen, schoonmaken fotograferen, pendelen
Thom koken, afwassen, pendelen fotograferen, snackdealen
Wassasin snackdealen, koken, snijden afwassen, schoonmaken, fotograferen
Weasel fotograferen, snijden schoonmaken, snackdealen
Yorick koken, snijden, afwassen snackdealen, fotograferen

31
wiki_to_prefs_table.py Executable file
View File

@@ -0,0 +1,31 @@
#!/usr/bin/env python
import sys
def process_line(line):
line = line.rstrip(" \n")
if line == "|-":
return
if not line.startswith("|"):
return
line = line.lstrip("| ")
line = line.replace("[[", "")
line = line.replace("]]", "")
line = line.replace("User:", "")
splitted = [x.strip() for x in line.split("||")]
if len(splitted[0].split("|")) == 2:
splitted[0] = splitted[0].split("|")[1]
if splitted[1] == "":
splitted[1] = "-"
if splitted[2] == "":
splitted[2] = "-"
print(f"{splitted[0]}\t{splitted[1]}\t{splitted[2]}")
def main():
for line in sys.stdin:
process_line(line)
if __name__ == "__main__":
main()