Error Collector speichert jetzt listen und dictionaries
This commit is contained in:
+48
-8
@@ -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."""
|
||||||
|
|||||||
Reference in New Issue
Block a user