Wrappe modular aufgebaut, Tests erfolgreich, Menüleiste und Werzeugleiste werden eingetragen (QT6 und QT5)- (Es fehlen noch Fachplugins, um zu prüfen, ob es auch wirklich in QGIS geht)

This commit is contained in:
2025-12-19 14:29:52 +01:00
parent e8fea163b5
commit f88b5da51f
37 changed files with 1886 additions and 1679 deletions

View File

@@ -1,12 +1,13 @@
"""
sn_basis/modulesdateipruefer.py Prüfung von Dateieingaben für das Plugin.
Verwendet syswrapper und gibt pruef_ergebnis an den Pruefmanager zurück.
sn_basis/modules/Dateipruefer.py Prüfung von Dateieingaben für das Plugin.
Verwendet sys_wrapper und gibt pruef_ergebnis an den Pruefmanager zurück.
"""
from sn_basis.functions.syswrapper import (
file_exists,
is_file,
from pathlib import Path
from sn_basis.functions import (
join_path,
file_exists,
)
from sn_basis.modules.Pruefmanager import pruef_ergebnis
@@ -32,13 +33,14 @@ class Dateipruefer:
self.standarddatei = standarddatei
self.temporaer_erlaubt = temporaer_erlaubt
# ---------------------------------------------------------
# Hilfsfunktion
# ---------------------------------------------------------
def _pfad(self, relativer_pfad: str) -> str:
"""Erzeugt einen OSunabhängigen Pfad relativ zum Basisverzeichnis."""
def _pfad(self, relativer_pfad: str) -> Path:
"""
Erzeugt einen OSunabhängigen Pfad relativ zum Basisverzeichnis.
"""
return join_path(self.basis_pfad, relativer_pfad)
# ---------------------------------------------------------
@@ -62,12 +64,12 @@ class Dateipruefer:
# -----------------------------------------------------
pfad = self._pfad(self.pfad)
if not file_exists(pfad) or not is_file(pfad):
if not file_exists(pfad):
return pruef_ergebnis(
ok=False,
meldung=f"Die Datei '{self.pfad}' wurde nicht gefunden.",
aktion="datei_nicht_gefunden",
pfad=pfad,
kontext=pfad,
)
# -----------------------------------------------------
@@ -77,7 +79,7 @@ class Dateipruefer:
ok=True,
meldung="Datei gefunden.",
aktion="ok",
pfad=pfad,
kontext=pfad,
)
# ---------------------------------------------------------
@@ -96,25 +98,31 @@ class Dateipruefer:
ok=False,
meldung="Das Dateifeld ist leer. Soll ohne Datei fortgefahren werden?",
aktion="leereingabe_erlaubt",
pfad=None,
kontext=None,
)
# 2. Standarddatei verfügbar → Nutzer fragen, ob sie verwendet werden soll
if self.standarddatei:
return pruef_ergebnis(
ok=False,
meldung=f"Es wurde keine Datei angegeben. Soll die Standarddatei '{self.standarddatei}' verwendet werden?",
meldung=(
f"Es wurde keine Datei angegeben. "
f"Soll die Standarddatei '{self.standarddatei}' verwendet werden?"
),
aktion="standarddatei_vorschlagen",
pfad=self._pfad(self.standarddatei),
kontext=self._pfad(self.standarddatei),
)
# 3. Temporäre Datei erlaubt → Nutzer fragen, ob temporär gearbeitet werden soll
if self.temporaer_erlaubt:
return pruef_ergebnis(
ok=False,
meldung="Es wurde keine Datei angegeben. Soll eine temporäre Datei erzeugt werden?",
meldung=(
"Es wurde keine Datei angegeben. "
"Soll eine temporäre Datei erzeugt werden?"
),
aktion="temporaer_erlaubt",
pfad=None,
kontext=None,
)
# 4. Leereingabe nicht erlaubt → Fehler
@@ -122,5 +130,5 @@ class Dateipruefer:
ok=False,
meldung="Es wurde keine Datei angegeben.",
aktion="leereingabe_nicht_erlaubt",
pfad=None,
kontext=None,
)