Error Collector speichert jetzt listen und dictionaries

This commit is contained in:
2026-01-29 16:41:06 +01:00
parent 0587cfea36
commit 0a2e7bb2ef
+48 -8
View File
@@ -20,23 +20,63 @@ class ErrorCollector:
"""Fügt Fehler aus einem Dictionary hinzu.""" """Fügt Fehler aus einem Dictionary hinzu."""
for key, value in error_dict.items(): for key, value in error_dict.items():
if key in self.errors: if key in self.errors:
if isinstance(self.errors[key], list) and isinstance(value, list): # Key existiert bereits - Verhalten hängt vom Typ ab
self.errors[key].extend(value) existing = self.errors[key]
if isinstance(existing, dict) and isinstance(value, dict):
# Beide sind Dictionaries → Merge/Update
existing.update(value)
elif isinstance(existing, list):
# Existierender Wert ist Liste
if isinstance(value, list):
existing.extend(value)
else:
existing.append(value)
else: else:
self.errors[key] = [self.errors[key], value] # Existierender Wert ist weder dict noch list → Mache Liste daraus
if isinstance(value, list):
self.errors[key] = [existing] + value
else:
self.errors[key] = [existing, value]
else: else:
self.errors[key] = value # Neuer Key - behalte Typ des Wertes
if isinstance(value, (dict, list)):
# Dictionary oder Liste → direkt speichern
self.errors[key] = value
else:
# Primitiver Wert (String, etc.) → als Liste speichern
self.errors[key] = [value]
def add_warnings(self, warning_dict): def add_warnings(self, warning_dict):
"""Fügt Warnungen aus einem Dictionary hinzu.""" """Fügt Warnungen aus einem Dictionary hinzu."""
for key, value in warning_dict.items(): for key, value in warning_dict.items():
if key in self.warnings: if key in self.warnings:
if isinstance(self.warnings[key], list) and isinstance(value, list): # Key existiert bereits - Verhalten hängt vom Typ ab
self.warnings[key].extend(value) existing = self.warnings[key]
if isinstance(existing, dict) and isinstance(value, dict):
# Beide sind Dictionaries → Merge/Update
existing.update(value)
elif isinstance(existing, list):
# Existierender Wert ist Liste
if isinstance(value, list):
existing.extend(value)
else:
existing.append(value)
else: else:
self.warnings[key] = [self.warnings[key], value] # Existierender Wert ist weder dict noch list → Mache Liste daraus
if isinstance(value, list):
self.warnings[key] = [existing] + value
else:
self.warnings[key] = [existing, value]
else: else:
self.warnings[key] = value # Neuer Key - behalte Typ des Wertes
if isinstance(value, (dict, list)):
# Dictionary oder Liste → direkt speichern
self.warnings[key] = value
else:
# Primitiver Wert (String, etc.) → als Liste speichern
self.warnings[key] = [value]
def has_errors_or_warnings(self): def has_errors_or_warnings(self):
"""Prüft ob Fehler oder Warnungen vorhanden sind.""" """Prüft ob Fehler oder Warnungen vorhanden sind."""