Fehlerhandling in eigene Klasse ausgelagert
This commit is contained in:
+2
-56
@@ -11,6 +11,8 @@ from ezdxf.addons import iterdxf
|
||||
from shapely.geometry import Point
|
||||
from ezdxf.lldxf.const import DXFStructureError
|
||||
|
||||
from error_collector import ErrorCollector, write_json_file
|
||||
|
||||
|
||||
"""
|
||||
Dieses Programm:
|
||||
@@ -22,62 +24,6 @@ Dieses Programm:
|
||||
"""
|
||||
|
||||
|
||||
class ErrorCollector:
|
||||
"""Sammelt alle Fehler und Warnungen während der Verarbeitung."""
|
||||
|
||||
def __init__(self):
|
||||
self.errors = {}
|
||||
self.warnings = {}
|
||||
|
||||
def add_errors(self, error_dict):
|
||||
"""Fügt Fehler aus einem Dictionary hinzu."""
|
||||
for key, value in error_dict.items():
|
||||
if key in self.errors:
|
||||
if isinstance(self.errors[key], list) and isinstance(value, list):
|
||||
self.errors[key].extend(value)
|
||||
else:
|
||||
self.errors[key] = [self.errors[key], value]
|
||||
else:
|
||||
self.errors[key] = value
|
||||
|
||||
def add_warnings(self, warning_dict):
|
||||
"""Fügt Warnungen aus einem Dictionary hinzu."""
|
||||
for key, value in warning_dict.items():
|
||||
if key in self.warnings:
|
||||
if isinstance(self.warnings[key], list) and isinstance(value, list):
|
||||
self.warnings[key].extend(value)
|
||||
else:
|
||||
self.warnings[key] = [self.warnings[key], value]
|
||||
else:
|
||||
self.warnings[key] = value
|
||||
|
||||
def has_errors_or_warnings(self):
|
||||
"""Prüft ob Fehler oder Warnungen vorhanden sind."""
|
||||
return bool(self.errors) or bool(self.warnings)
|
||||
|
||||
def has_errors(self):
|
||||
"""Prüft ob Fehlervorhanden sind."""
|
||||
return bool(self.errors)
|
||||
|
||||
def get_all_issues(self):
|
||||
"""Gibt alle Fehler und Warnungen als Dictionary zurück."""
|
||||
result = {}
|
||||
if self.errors:
|
||||
result["errors"] = self.errors
|
||||
if self.warnings:
|
||||
result["warnings"] = self.warnings
|
||||
return result
|
||||
|
||||
def write_errorfile(self, work_dir: Path, filename: str):
|
||||
"""Schreibt Fehlerdatei nur wenn Fehler oder Warnungen vorhanden sind."""
|
||||
if self.has_errors():
|
||||
print("Fehler gefunden. Schreibe Error-Datei.")
|
||||
all_issues = self.get_all_issues()
|
||||
write_results(to_json(all_issues), work_dir, filename)
|
||||
else:
|
||||
print("Keine Fehler oder Warnungen gefunden. Keine Error-Datei geschrieben.")
|
||||
|
||||
|
||||
def write_results(jsn_results: str, out_dir: Path, filename: str) -> None:
|
||||
"""Write results to a JSON file."""
|
||||
print("writing results to a json file ...")
|
||||
|
||||
Reference in New Issue
Block a user