Files
Plugin_SN_Basis/modules/pruef_ergebnis.py

62 lines
1.7 KiB
Python

from __future__ import annotations
from dataclasses import dataclass
from typing import Any, Optional, Literal
# Erweitertes Literal mit allen erlaubten Aktionen (PruefAktion)
PruefAktion = Literal[
"ok",
"leer",
"leereingabe_erlaubt",
"leereingabe_nicht_erlaubt",
"standarddatei_vorschlagen",
"temporaer_erlaubt",
"temporaer_erzeugen",
"datei_nicht_gefunden",
"kein_dateipfad",
"pfad_nicht_gefunden",
"url_nicht_erreichbar",
"netzwerkfehler",
"layer_nicht_gefunden",
"layer_unsichtbar",
"falscher_geotyp",
"layer_leer",
"falscher_layertyp",
"falsches_crs",
"felder_fehlen",
"datenquelle_unerwartet",
"layer_nicht_editierbar",
"falsche_endung",
# Excel / Import-spezifische Aktionen
"kein_header",
"kein_arbeitsblatt",
"read_error",
"open_error",
# Generische Prüf-/Speicher-Aktionen
"pruefe_exception",
"save_exception",
"save_not_implemented",
"stil_not_implemented",
"datei_unbekannt",
"needs_user_action",
]
@dataclass
class pruef_ergebnis:
"""
Einheitliches Ergebnisobjekt für Prüfer.
- ok: True wenn Prüfung bestanden
- meldung: menschenlesbare Meldung
- aktion: maschinenlesbarer Aktionscode (PruefAktion)
- kontext: optionaler Zusatzkontext (z. B. Pfad, Layer-Objekt)
"""
ok: bool
meldung: Optional[str] = None
aktion: Optional[PruefAktion] = None
kontext: Optional[Any] = None
def __init__(self, ok: bool, meldung: Optional[str] = None, aktion: Optional[PruefAktion] = None, kontext: Optional[Any] = None):
self.ok = ok
self.meldung = meldung
self.aktion = aktion
self.kontext = kontext