Weekend 22, some QoL improvements (added wiki_to_prefs_table.py, print wiki header in output as well)
This commit is contained in:
67
config.yaml
67
config.yaml
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
57
prefs_table
57
prefs_table
@@ -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
31
wiki_to_prefs_table.py
Executable 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()
|
||||||
Reference in New Issue
Block a user