From e4903fc07dfe8d8e5b2a8a25964eb07a8cf9674d Mon Sep 17 00:00:00 2001
From: Hong-Phuc Bui <hong-phuc.bui@htwsaar.de>
Date: Mon, 27 May 2024 17:24:10 +0200
Subject: [PATCH] dms

---
 funktion-modular/study-effort/effort_semester.py                    |    6 
 funktion-modular/lern-taxonomie/test_converter.py                   |   30 ++++
 funktion-modular/dms_to_dd/dms_dd.py                                |   23 +++
 funktion-modular/calendar/__pycache__/month_of_year.cpython-312.pyc |    0 
 funktion-modular/callstack-example/trace_error.py                   |   23 +++
 funktion-modular/lern-taxonomie/taxonomie.csv                       |  314 ++++++++++++++++++++++++++++++++++++++++++++
 funktion-modular/calendar/HOWTO.md                                  |    2 
 funktion-modular/lern-taxonomie/README.md                           |   15 ++
 8 files changed, 408 insertions(+), 5 deletions(-)

diff --git a/funktion-modular/calendar/HOWTO.md b/funktion-modular/calendar/HOWTO.md
index 56f2d5d..c53b5fa 100644
--- a/funktion-modular/calendar/HOWTO.md
+++ b/funktion-modular/calendar/HOWTO.md
@@ -11,5 +11,5 @@
 * For some files
 
 ```shell
-python -m unittest -p '*_test.py'
+python -m unittest -p 'test_<somefile>.py'
 ```
diff --git a/funktion-modular/calendar/__pycache__/month_of_year.cpython-312.pyc b/funktion-modular/calendar/__pycache__/month_of_year.cpython-312.pyc
index 7934e3f..d4c2668 100644
--- a/funktion-modular/calendar/__pycache__/month_of_year.cpython-312.pyc
+++ b/funktion-modular/calendar/__pycache__/month_of_year.cpython-312.pyc
Binary files differ
diff --git a/funktion-modular/callstack-example/trace_error.py b/funktion-modular/callstack-example/trace_error.py
new file mode 100644
index 0000000..3e3d5f8
--- /dev/null
+++ b/funktion-modular/callstack-example/trace_error.py
@@ -0,0 +1,23 @@
+
+
+def ask_pair_of_radii() -> (int, int):
+    input_ok = False
+    while not input_ok:
+        try:
+            r1 = int(input("r1 = "))
+            r2 = int(input("r2 = "))
+            input_ok = True
+            return r1, r2
+        except ValueError as ex:
+            print("Eingabe ist keine Zahl")
+
+
+
+
+def main():
+    outer_radius, inner_radius = ask_pair_of_radii()
+    print(f"Außenradius = {outer_radius} Innenradius =  {inner_radius}")
+
+
+if __name__ == "__main__":
+    main()
diff --git a/funktion-modular/dms_to_dd/dms_dd.py b/funktion-modular/dms_to_dd/dms_dd.py
new file mode 100644
index 0000000..090ac2e
--- /dev/null
+++ b/funktion-modular/dms_to_dd/dms_dd.py
@@ -0,0 +1,23 @@
+# Fingerübung im Skript
+#dms = "+45:10:12.5"
+#      "-50:15:2.3"
+
+def to_dd(dms: str) -> float:
+    parts = dms.split(":")
+    deg = int(parts[0])  # Vorzeichen behalfted
+    minute = int(parts[1])  # 0 oder positiv
+    sec = float(parts[2])
+    if dms[0] == '-' :
+        return deg - (minute/60) -(sec/3600)
+    else:
+        return deg + (minute/60) - (sec/3600)
+
+test_data = [
+    "+45:10:12.5",
+    "-50:15:2.3",
+    "0:30:0",
+    "-0:45:6.5"
+]
+
+degrees = [to_dd(d) for d in test_data]
+print(degrees)
diff --git a/funktion-modular/lern-taxonomie/README.md b/funktion-modular/lern-taxonomie/README.md
new file mode 100644
index 0000000..c53b5fa
--- /dev/null
+++ b/funktion-modular/lern-taxonomie/README.md
@@ -0,0 +1,15 @@
+# HOWTO
+
+## Run unittest
+
+* For all unittests in directory
+
+```shell
+python -m unittest
+```
+
+* For some files
+
+```shell
+python -m unittest -p 'test_<somefile>.py'
+```
diff --git a/funktion-modular/lern-taxonomie/taxonomie.csv b/funktion-modular/lern-taxonomie/taxonomie.csv
new file mode 100644
index 0000000..caf1c9e
--- /dev/null
+++ b/funktion-modular/lern-taxonomie/taxonomie.csv
@@ -0,0 +1,314 @@
+abstimmen;1;Wissen
+anführen;1;Wissen
+angeben;1;Wissen
+auflisten;1;Wissen
+aufschreiben;1;Wissen
+aufzählen;1;Wissen
+aufzeichnen;1;Wissen
+ausführen;1;Wissen
+benennen;1;Wissen
+berichten;1;Wissen
+beschreiben;1;Wissen
+betonen;1;Wissen
+bezeichnen;1;Wissen
+darstellen;1;Wissen
+definieren;1;Wissen
+entnehmen;1;Wissen
+erkennen;1;Wissen
+erstellen;1;Wissen
+erzählen;1;Wissen
+feststellen;1;Wissen
+finden;1;Wissen
+gliedern;1;Wissen
+identifizieren;1;Wissen
+Kenntnis;1;Wissen
+Kenntnis haben von;1;Wissen
+kennzeichnen;1;Wissen
+messen;1;Wissen
+präsentieren;1;Wissen
+reproduzieren;1;Wissen
+schildern;1;Wissen
+schreiben;1;Wissen
+sich erinnern;1;Wissen
+skizzieren;1;Wissen
+umreißen;1;Wissen
+vervollständigen;1;Wissen
+wiedergeben;1;Wissen
+wiederholen;1;Wissen
+zeichnen;1;Wissen
+zeigen;1;Wissen
+zitieren;1;Wissen
+zuordnen;1;Wissen
+abgrenzen;2;Verständnis
+ableiten;2;Verständnis
+anordnen;2;Verständnis
+ausdrücken;2;Verständnis
+auswählen;2;Verständnis
+begründen;2;Verständnis
+berichten;2;Verständnis
+beschreiben;2;Verständnis
+bestimmen;2;Verständnis
+charakterisieren;2;Verständnis
+darstellen;2;Verständnis
+demonstrieren;2;Verständnis
+deuten;2;Verständnis
+diskutieren;2;Verständnis
+durch ein Beispiel erläute;2;Verständnis
+einordnen;2;Verständnis
+einordnen erkennen;2;Verständnis
+erklären;2;Verständnis
+erläutern;2;Verständnis
+extrapolieren;2;Verständnis
+finden;2;Verständnis
+folgern;2;Verständnis
+formulieren;2;Verständnis
+gegenüberstellen;2;Verständnis
+generalisieren;2;Verständnis
+hinweisen;2;Verständnis
+identifizieren;2;Verständnis
+illustrieren;2;Verständnis
+interpretieren;2;Verständnis
+klären;2;Verständnis
+klassifizieren;2;Verständnis
+lokalisieren;2;Verständnis
+ordnen;2;Verständnis
+präsentieren;2;Verständnis
+präzisieren;2;Verständnis
+repräsentieren;2;Verständnis
+schätzen;2;Verständnis
+schildern;2;Verständnis
+schreiben;2;Verständnis
+übersetzen;2;Verständnis
+übertragen;2;Verständnis
+umformen;2;Verständnis
+umschreiben;2;Verständnis
+unterscheiden;2;Verständnis
+verallgemeinern;2;Verständnis
+veranschaulichen;2;Verständnis
+verdeutlichen,;2;Verständnis
+vergleichen;2;Verständnis
+voraussagen;2;Verständnis
+vorführen;2;Verständnis
+wiedergeben;2;Verständnis
+wiederholen;2;Verständnis
+zuordnen;2;Verständnis
+zusammenfassen;2;Verständnis
+abschätzen;3;Anwendung
+ändern;3;Anwendung
+anfertigen;3;Anwendung
+anknüpfen;3;Anwendung
+anwenden;3;Anwendung
+aufstellen;3;Anwendung
+ausführen;3;Anwendung
+ausfüllen;3;Anwendung
+auswählen;3;Anwendung
+bearbeiten;3;Anwendung
+bedienen;3;Anwendung
+beeinflussen;3;Anwendung
+begründen;3;Anwendung
+Beispiele geben;3;Anwendung
+benutzen;3;Anwendung
+berechnen;3;Anwendung
+berechnen beurteilen;3;Anwendung
+bestimmen;3;Anwendung
+beweisen;3;Anwendung
+bewerten;3;Anwendung
+darstellen;3;Anwendung
+demonstrieren;3;Anwendung
+durchführen;3;Anwendung
+einordnen;3;Anwendung
+eintragen;3;Anwendung
+entdecken;3;Anwendung
+entwerfen;3;Anwendung
+entwickeln;3;Anwendung
+erklären;3;Anwendung
+errechnen;3;Anwendung
+erstellen;3;Anwendung
+fertigen;3;Anwendung
+Fertigkeit;3;Anwendung
+finden;3;Anwendung
+formatieren;3;Anwendung
+formulieren;3;Anwendung
+herausfinden;3;Anwendung
+illustrieren;3;Anwendung
+interpretieren;3;Anwendung
+Kompetenz;3;Anwendung
+löschen;3;Anwendung
+lösen;3;Anwendung
+machen;3;Anwendung
+modifizieren;3;Anwendung
+nutzen;3;Anwendung
+organisieren;3;Anwendung
+planen;3;Anwendung
+praktizieren;3;Anwendung
+quantifizieren;3;Anwendung
+realisieren;3;Anwendung
+rechnen;3;Anwendung
+sich beziehen auf;3;Anwendung
+transferieren;3;Anwendung
+übersetzen;3;Anwendung
+umschreiben;3;Anwendung
+umsetzen;3;Anwendung
+unterscheiden;3;Anwendung
+veranschaulichen;3;Anwendung
+verdeutlichen;3;Anwendung
+verifizieren;3;Anwendung
+verwenden;3;Anwendung
+voraussagen;3;Anwendung
+vorbereiten;3;Anwendung
+wählen;3;Anwendung
+zeichnen;3;Anwendung
+zeigen;3;Anwendung
+zergliedern;3;Anwendung
+ableiten;4;Analyse
+analysieren;4;Analyse
+auflösen;4;Analyse
+aufschlüsseln;4;Analyse
+aufteilen;4;Analyse
+aufzeigen;4;Analyse
+auswerten;4;Analyse
+beschreiben;4;Analyse
+bestimmen;4;Analyse
+darlegen;4;Analyse
+darstellen;4;Analyse
+debattieren;4;Analyse
+diagnostizieren;4;Analyse
+einkreisen;4;Analyse
+einteilen;4;Analyse
+erhellen;4;Analyse
+erkennen;4;Analyse
+ermitteln;4;Analyse
+experimentieren;4;Analyse
+folgern;4;Analyse
+gegenüberstellen;4;Analyse
+gliedern;4;Analyse
+hinterfragen;4;Analyse
+identifizieren;4;Analyse
+isolieren;4;Analyse
+kategorisieren;4;Analyse
+klassifizieren;4;Analyse
+kontrastieren;4;Analyse
+kritisieren;4;Analyse
+lösen;4;Analyse
+nachweisen;4;Analyse
+prüfen;4;Analyse
+rechtfertigen;4;Analyse
+schließen;4;Analyse
+schlussfolgern;4;Analyse
+sich beziehen auf;4;Analyse
+sortieren;4;Analyse
+teilen;4;Analyse
+testen;4;Analyse
+trennen;4;Analyse
+umreißen;4;Analyse
+umwandeln;4;Analyse
+unterscheiden;4;Analyse
+untersuchen;4;Analyse
+unterteilen;4;Analyse
+urteilen;4;Analyse
+vergleichen;4;Analyse
+verlegen;4;Analyse
+verwenden;4;Analyse
+zuordnen;4;Analyse
+ableiten;5;Evaluation
+äussern;5;Evaluation
+auswählen;5;Evaluation
+auswerten;5;Evaluation
+beschreiben;5;Evaluation
+bestimmen;5;Evaluation
+beurteilen;5;Evaluation
+bewerten;5;Evaluation
+differenzieren;5;Evaluation
+einschätzen;5;Evaluation
+einstufen;5;Evaluation
+entdecken;5;Evaluation
+entscheiden;5;Evaluation
+entwerfen;5;Evaluation
+entwickeln;5;Evaluation
+erfinden;5;Evaluation
+erschaffen;5;Evaluation
+erzeugen;5;Evaluation
+evaluieren;5;Evaluation
+folgern;5;Evaluation
+gegenüberstellen;5;Evaluation
+gewichten;5;Evaluation
+hinterfragen;5;Evaluation
+interpretieren;5;Evaluation
+konstruieren;5;Evaluation
+kreieren;5;Evaluation
+kritisieren;5;Evaluation
+messen;5;Evaluation
+präparieren;5;Evaluation
+prüfen;5;Evaluation
+qualifizieren;5;Evaluation
+rechtfertigen;5;Evaluation
+revalatieren;5;Evaluation
+schließen;5;Evaluation
+überzeugen;5;Evaluation
+unterscheiden;5;Evaluation
+urteilen;5;Evaluation
+vereinfachen;5;Evaluation
+vergleichen;5;Evaluation
+verteidigen;5;Evaluation
+vertreten;5;Evaluation
+werten;5;Evaluation
+widerlegen;5;Evaluation
+zusammensetzen;5;Evaluation
+abfassen;6;Synthese
+ableiten;6;Synthese
+ändern;6;Synthese
+argumentieren;6;Synthese
+arrangieren;6;Synthese
+aufbauen;6;Synthese
+aufstellen;6;Synthese
+ausarbeiten;6;Synthese
+begründen;6;Synthese
+benoten;6;Synthese
+bilden;6;Synthese
+darstellen;6;Synthese
+definieren;6;Synthese
+entscheiden;6;Synthese
+entwerfen;6;Synthese
+entwickeln;6;Synthese
+erklären;6;Synthese
+erläutern;6;Synthese
+erstellen;6;Synthese
+erweitern;6;Synthese
+erzählen;6;Synthese
+erzeugen;6;Synthese
+evaluieren;6;Synthese
+formulieren;6;Synthese
+generieren;6;Synthese
+gestalten;6;Synthese
+hervorbringen;6;Synthese
+integrieren;6;Synthese
+klassifizieren;6;Synthese
+kombinieren;6;Synthese
+konstruieren;6;Synthese
+kritisieren;6;Synthese
+lehren;6;Synthese
+lösen;6;Synthese
+managen;6;Synthese
+modifizieren;6;Synthese
+optimieren;6;Synthese
+ordnen;6;Synthese
+organisieren;6;Synthese
+planen;6;Synthese
+prüfen;6;Synthese
+sammeln;6;Synthese
+schätzen;6;Synthese
+schreiben;6;Synthese
+sich beziehen auf;6;Synthese
+strukturieren;6;Synthese
+synthetisieren;6;Synthese
+überprüfen;6;Synthese
+umformulieren;6;Synthese
+verändern;6;Synthese
+verbinden;6;Synthese
+verfassen;6;Synthese
+vorschlagen;6;Synthese
+wählen;6;Synthese
+werten;6;Synthese
+zusammenfassen;6;Synthese
+zusammensetzen;6;Synthese
+zusammenstellen;6;Synthese
diff --git a/funktion-modular/lern-taxonomie/test_converter.py b/funktion-modular/lern-taxonomie/test_converter.py
new file mode 100644
index 0000000..7bf803d
--- /dev/null
+++ b/funktion-modular/lern-taxonomie/test_converter.py
@@ -0,0 +1,30 @@
+import unittest
+from converter import group_term, Taxonomy
+
+
+class ConverterTestCase(unittest.TestCase):
+    def test_group_term(self):
+        terms = {}
+        line = "abstimmen;1;Wissen\n"
+        group_term(line, terms)
+        wissen_grp:set[str] = terms[(1,"Wissen")]
+        self.assertTrue( "abstimmen" in wissen_grp )
+        self.assertEqual(len(wissen_grp), 1)
+        print(terms)
+
+    def test_add_data(self):
+        key = (1, "Wissen")
+        value = "abstimmen"
+        terms = {
+            key : {value}
+        }
+        line = "anführen;1;Wissen\n"
+        group_term(line, terms)
+        wissen_grp:set[str] = terms[key]
+        self.assertTrue( "anführen" in wissen_grp )
+        self.assertTrue( len(wissen_grp), 2 )
+
+
+
+if __name__ == '__main__':
+    unittest.main()
diff --git a/funktion-modular/study-effort/effort_semester.py b/funktion-modular/study-effort/effort_semester.py
index 24bca67..ecc3570 100644
--- a/funktion-modular/study-effort/effort_semester.py
+++ b/funktion-modular/study-effort/effort_semester.py
@@ -43,7 +43,7 @@
     with open(lecture_filename) as file:
         while line := file.readline():
             line = line.strip()
-            if line[0] != '#':
+            if len(line) > 0 and line[0] != '#':
                 line = parse_line(line)
                 lectures.append( line )
     return lectures
@@ -65,7 +65,7 @@
 def print_effort(effort: list[tuple[str, float, float, float]]) -> None:
     header = ("Vorlesung", "ECTS", "V;U;T/Woche", "Aufwand/Woche")
     max_char = len(header)
-    sep_width = 3
+    sep_width = 0
     sum_effort = 0
     for l in effort:
         if (c := len(l[0])) > max_char:
@@ -94,9 +94,7 @@
 if __name__ == "__main__":
     lecture_filename = sys.argv[1]
     lectures = collect_lectures_from_file(lecture_filename)
-    print(lectures)
     effort = compute_semester_effort(lectures)
-    #print(effort)
     print_effort(effort)
 
 

--
Gitblit v1.10.0-SNAPSHOT