1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
#!/usr/bin/env python3
"""Erzeuge SQL Statements um die Klassen eines Jahrgangs anzulegen"""
import argparse
from itertools import cycle
STATEMENT = "INSERT INTO Klasse (Schuljahr, Jahrgang, Bezeichner, Farbe) VALUES ('{}', {}, '{}', '{}');"
FARBSCHEMAS = {
"regenbogen":
["#de324c", "#f4895f", "#f8e16f", "#95cf92", "#369acc", "#9656a2"],
"default": ["#36a2eb" for _ in range(6)]
}
def erzeuge_statements(schuljahr: str, klassenstufe: int, bezeichner: str,
farbschema: str) -> list[str]:
"""Gib eine Liste an SQL Statements zurück, um alle Klassen eines Jahrgangs zu erzeugen"""
statements = []
aktueller_bezeichner = 'a'
farben = cycle(FARBSCHEMAS[farbschema])
while aktueller_bezeichner <= bezeichner:
statement = STATEMENT.format(schuljahr, klassenstufe,
aktueller_bezeichner, next(farben))
statements.append(statement)
aktueller_bezeichner = chr(ord(aktueller_bezeichner) + 1)
return statements
def main():
"""Erzeuge passenden Statements zu den Kommandozeilen-Parameter"""
parser = argparse.ArgumentParser()
parser.add_argument("--farbschema",
choices=["default", "regenbogen"],
default="default",
help="Das Farbschema der erzeugten Klassen")
parser.add_argument("schuljahr",
type=str,
help="Das Schuljahr in der Form: yyYY")
parser.add_argument("klassenstufe",
type=int,
help="Die Klassenstufe der zu erzeugenden Klassen")
parser.add_argument("letzter_bezeichner",
type=str,
help="Der letzte alphabetische Bezeichner der Klassen")
args = parser.parse_args()
for statement in erzeuge_statements(args.schuljahr, args.klassenstufe,
args.letzter_bezeichner,
args.farbschema):
print(statement)
if __name__ == '__main__':
main()
|