From 467bdbd56fcae506bd0bb930e2094c0d56b579b4 Mon Sep 17 00:00:00 2001 From: Gerdriaan Mulder Date: Sun, 1 Feb 2026 15:16:59 +0100 Subject: [PATCH] Weekend 22, some QoL improvements (added wiki_to_prefs_table.py, print wiki header in output as well) --- config.yaml | 67 +++++++++++++++++++++------------------- magisch_corvee_script.py | 7 +++-- prefs_table | 57 ++++++++++++++++------------------ wiki_to_prefs_table.py | 31 +++++++++++++++++++ 4 files changed, 97 insertions(+), 65 deletions(-) create mode 100755 wiki_to_prefs_table.py diff --git a/config.yaml b/config.yaml index d823bdf..4498008 100644 --- a/config.yaml +++ b/config.yaml @@ -1,5 +1,5 @@ config: - days: 3 + days: 4 weights: likes: 1 hates: 3 @@ -8,95 +8,98 @@ config: task_re: "[ ,/]+" tasks: hotemetoten: - personen: [Lyra, mrngm, Pepper] + personen: [Tanja, mrngm, MargotM, Eliza] workload: 4 - req: [1, 1, 1] + req: [1, 1, 1, 1] hardcode: - - Lyra + - Eliza + - Tanja + - MargotM - mrngm - - Pepper lookup: [hotemetoten] superkok: - req: [1, 1, 1] - personen: [MacGyver, Annelies, Mieksies] + req: [1, 1, 1, 0] + personen: [MacGyver, carrot, Pepper] workload: 4 lookup: [superkok] hardcode: - MacGyver - - Annelies - - Mieksies + - carrot + - Pepper snijden: - req: [2, 3, 3] + req: [2, 3, 3, 0] workload: 2 personen: iedereen lookup: [snijden] koken: - req: [3, 3, 3] + req: [3, 3, 3, 0] workload: 3 personen: liefhebbers lookup: [koken, kookhulp, hulpkoken] afwassen: - req: [3, 6, 6] + req: [3, 6, 6, 0] workload: 2 personen: iedereen lookup: [afwassen] schoonmaken: - req: [2, 4, 4] + req: [2, 4, 4, 0] workload: 2 personen: iedereen lookup: [schoonmaken] snackdealen: - req: [2, 4, 4] + req: [2, 4, 4, 0] workload: 1 personen: iedereen lookup: [hapjes, snackdealen] fotograferen: - req: [2, 3, 3] + req: [2, 3, 3, 0] workload: 2 personen: liefhebbers lookup: [fotograferen] pendelen: - req: [1, 1, 1] + req: [1, 1, 1, 0] workload: 2 personen: liefhebbers lookup: [pendelen] people: - Abel -- Anita -- Annelies -- Blondie +- avel +- Blu +- carrie - carrot +- cuttlefish - Dusk - Eliza -- Harm -- John -- Joost +#- Harm +- Harmen +- Laurens - Leonie -- lynn -- Loki - lucus +- Lynn - Lyra - Maaike -- Mabl +- Mabel - MacGyver -- mapzie -- Margot -- Marion +- Mapzie +- MargotM - Marlon - Mieksies +- mike - Minnozz -- MrNGm +- mrngm - Nova - PaxSum - Pepper -- petervdv +- Petervdv +- PP - Quis - Rian -- Roflincopter +- roflin +- RTB - Sjors - SyntaxTerror - Tanja +#- Tauri - Thom -- Wassasin - Weasel - Yorick diff --git a/magisch_corvee_script.py b/magisch_corvee_script.py index c29a1f5..721fbbf 100755 --- a/magisch_corvee_script.py +++ b/magisch_corvee_script.py @@ -1,5 +1,5 @@ #! /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 yaml 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("WH", config['weights']['hates']), file=file) 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(): days = [[] for i in range(config['days'])] for (d,t) in p.does: @@ -151,7 +154,7 @@ def write_tasks(people, tasks, file=sys.stdout): days_fmt = " {} ||" * len(days) days_filled = days_fmt.format(*map(q, days)) print("| {} ||{} {} || {}".format(name, days_filled, p.vrolijkheid(), p.workload(tasks)), file=file) - print("|-") + print("|-", file=file) people = read_people(conf['people']) with open('prefs_table', 'r') as pref_file: read_prefs(pref_file, tasks, people) diff --git a/prefs_table b/prefs_table index 95d9d73..e7ccf24 100644 --- a/prefs_table +++ b/prefs_table @@ -1,31 +1,26 @@ -Abel - pendelen -Anita schoonmaken, afwassen fotograferen, pendelen -carrot koken, snijden - -Dusk pendelen, snijden, koken afwassen, schoonmaken -Eliza schoonmaken, koken, snijden snackdealen, pendelen, afwassen -Harm pendelen, fotograferen snackdealen, schoonmaken -Joost snijden fotograferen, pendelen, schoonmaken, snackdealen -Leonie koken, snijden, pendelen snackdealen, fotograferen -Loki snijden, koken, snackdealen afwassen, schoonmaken -lucus koken, snijden schoonmaken, snackdealen -lynn koken, snackdealen, schoonmaken afwassen, snijden, koken -Maaike snijden, koken, afwassen snackdealen, fotograferen, pendelen -Mabl snijden, schoonmaken fotograferen, pendelen, snackdealen -mapzie snackdealen snijden, koken, schoonmaken, afwassen -Margot snijden, koken, afwassen snackdealen, schoonmaken -Marion snijden, koken, afwassen snackdealen, fotograferen, schoonmaken -Marlon koken, snijden afwassen, schoonmaken -Minnozz fotograferen, snijden schoonmaken, afwassen -Nova pendelen, koken, snijden snackdealen, fotograferen, schoonmaken -PaxSum snijden, koken, afwassen fotograferen, snackdealen -petervdv snackdealen, pendelen - -Quis snackdealen, koken, snijden fotograferen, schoonmaken -Rian snijden, afwassen snackdealen, fotograferen, pendelen -Roflincopter schoonmaken, afwassen koken -Sjors pendelen, snackdealen koken, afwassen -SyntaxTerror snijden, schoonmaken, afwassen snackdealen, pendelen -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 +Abel fotograferen, snijden, koken pendelen +avel snackdealen, fotograferen koken, snijden, afwassen +Blu koken schoonmaken, snackdealen +Carrie snijden, pendelen snackdealen, koken +Cuttlefish koken, snijden, afwassen, schoonmaken snackdealen, fotograferen +Dusk koken schoonmaken, afwassen, snackdealen +Laurens pendelen, koken, snijden schoonmaken, afwassen, fotograferen +Leonie pendelen, snijden schoonmaken, snackdealen +lucus snijden, koken snackdealen, schoonmaken +lynn snackdealen schoonmaken, koken, afwassen, snijden +Lyra schoonmaken, afwassen, snackdealen snijden, koken +Maaike afwassen schoonmaken, snackdealen +Mabel schoonmaken, afwassen snackdealen, koken +Marlon koken, snijden, snackdealen schoonmaken, afwassen +Minnozz fotograferen, snijden schoonmaken, afwassen +Nova pendelen, koken, snijden schoonmaken, afwassen, snackdealen +PaxSum koken, snijden schoonmaken, snackdealen +Petervdv pendelen, snackdealen snijden, koken, afwassen, fotograferen +PP koken, snijden snackdealen +Quis snijden schoonmaken, fotograferen +Rian afwassen, snijden schoonmaken, snackdealen +roflin afwassen schoonmaken snackdealen koken +SyntaxTerror schoonmaken, afwassen koken, pendelen, snackdealen +Thom afwassen fotograferen, snackdealen +Weasel fotograferen, snijden koken, schoonmaken +Yorick snijden, koken snackdealen diff --git a/wiki_to_prefs_table.py b/wiki_to_prefs_table.py new file mode 100755 index 0000000..1dee309 --- /dev/null +++ b/wiki_to_prefs_table.py @@ -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()