forked from AG_QGIS/Plugin_SN_Basis
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:
@@ -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 OS‑unabhängigen Pfad relativ zum Basisverzeichnis."""
|
||||
def _pfad(self, relativer_pfad: str) -> Path:
|
||||
"""
|
||||
Erzeugt einen OS‑unabhä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,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user