-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkurswahl.py
88 lines (70 loc) · 2.26 KB
/
kurswahl.py
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
"kurswahl.py"
import os
from xml.dom import minidom
def matches(element: minidom.Element, choices: list[str]) -> bool:
"""helper function, checks if -element-'s subelements contain the same
respective string as -choice-'s elements"""
names = (
"leistungskurs1",
"leistungskurs2",
"prüfungsfach3",
"prüfungsfach4",
"prüfungskomponente5",
)
clap = []
for i, choice in enumerate(choices):
clap.append(element.getElementsByTagName(names[i])[0].childNodes[0].nodeValue == choice)
return all(clap)
def printem(element: minidom.Element):
"""helper function, prints the values of -element-'s subelements"""
print(
f"""
matched:
{element.getAttribute('id')}
---
{element.getElementsByTagName('leistungskurs1')[0].childNodes[0].nodeValue}
{element.getElementsByTagName('leistungskurs2')[0].childNodes[0].nodeValue}
{element.getElementsByTagName('prüfungsfach3')[0].childNodes[0].nodeValue}
{element.getElementsByTagName('prüfungsfach4')[0].childNodes[0].nodeValue}
{element.getElementsByTagName('prüfungskomponente5')[0].childNodes[0].nodeValue}
--------"""
)
def query():
"side effecting, blobby"
os.system("cls || clear")
found, courses = [], []
dommy = minidom.parse(
os.path.join(
os.path.dirname(os.path.abspath(__file__)),
"kurse.xml",
)
).getElementsByTagName("kurs")
print(
"""Kurs 1: Englisch, ...
Kurs 2: Mathematik, ...
Kurs 3: NW, ...
Kurs 4: Deutsch, ..."""
)
for i in range(4):
courses.append(
input(
f"""Wählen Sie ein Fach an der {i + 1}ten Position
aus einem der obenstehenden Kurse.\n"""
).upper()
)
os.system("cls || clear")
if not found:
found = [elli for elli in dommy if matches(elli, courses)]
else:
temp = [elli for elli in found if matches(elli, courses)]
found.clear()
found = [ele for ele in temp]
temp.clear()
for entry in found:
printem(entry)
def main():
"entry point"
query()
input()
if __name__ == "__main__":
main()