""" sn_basis/modules/stilpruefer.py – Prüfung von Layerstilen. Prüft ausschließlich, ob ein Stilpfad gültig ist. Die Anwendung erfolgt später über eine Aktion. """ from pathlib import Path from sn_basis.functions import file_exists from sn_basis.modules.pruef_ergebnis import pruef_ergebnis class Stilpruefer: """ Prüft, ob ein Stilpfad gültig ist und angewendet werden kann. Keine Seiteneffekte, keine QGIS-Aufrufe. """ def __init__(self): pass # --------------------------------------------------------- # Hauptfunktion # --------------------------------------------------------- def pruefe(self, stil_pfad: str) -> pruef_ergebnis: """ Prüft einen Stilpfad. Rückgabe: pruef_ergebnis """ # ----------------------------------------------------- # 1. Kein Stil angegeben → OK # ----------------------------------------------------- if not stil_pfad: return pruef_ergebnis( ok=True, meldung="Kein Stil angegeben.", aktion="ok", kontext=None, ) pfad = Path(stil_pfad) # ----------------------------------------------------- # 2. Datei existiert nicht # ----------------------------------------------------- if not file_exists(pfad): return pruef_ergebnis( ok=False, meldung=f"Die Stil-Datei '{stil_pfad}' wurde nicht gefunden.", aktion="datei_nicht_gefunden", kontext=pfad, ) # ----------------------------------------------------- # 3. Falsche Endung # ----------------------------------------------------- if pfad.suffix.lower() != ".qml": return pruef_ergebnis( ok=False, meldung="Die Stil-Datei muss die Endung '.qml' haben.", aktion="falsche_endung", kontext=pfad, ) # ----------------------------------------------------- # 4. Stil ist gültig → Anwendung später # ----------------------------------------------------- return pruef_ergebnis( ok=True, meldung="Stil-Datei ist gültig.", aktion="stil_anwendbar", kontext=pfad, )