länderkennungs-dict angelegt
This commit is contained in:
@@ -21,6 +21,7 @@ from .ly_metadata_wrapper import (
|
||||
)
|
||||
from .ly_style_wrapper import apply_style
|
||||
from .dialog_wrapper import ask_yes_no, ask_overwrite_append_cancel_custom, ask_ergaenzen_entfernen_ersetzen_abbrechen, ask_detailpruefung_oder_vg_laden
|
||||
from .laenderkennung import get_laenderkennung, LAENDERKENNUNGEN
|
||||
|
||||
from .message_wrapper import (
|
||||
_get_message_bar,
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
"""
|
||||
sn_basis/functions/laenderkennung.py – ALKIS-Länderkennung je Plugin-Präfix.
|
||||
|
||||
AGLB-länderspezifische Funktionen (z.B. Flurstückskennzeichen-Bildung) sollen
|
||||
nicht hart auf Sachsen ("14") verdrahtet sein, sondern die Länderkennung über
|
||||
dieses generische Mapping ermitteln. Für neue Bundesländer genügt ein weiterer
|
||||
Eintrag in ``LAENDERKENNUNGEN`` – die aufrufende Logik bleibt unverändert.
|
||||
"""
|
||||
|
||||
#: Mapping von sn_*-Plugin-Präfix (ohne Unterstrich) auf die zweistellige
|
||||
#: ALKIS-Länderkennung. Aktuell nur Sachsen befüllt; weitere Bundesländer
|
||||
#: können hier ergänzt werden, sobald Schwesterplugins dafür existieren.
|
||||
LAENDERKENNUNGEN: dict[str, str] = {
|
||||
"sn": "14", # Sachsen
|
||||
}
|
||||
|
||||
|
||||
def get_laenderkennung(plugin_praefix: str | None = None) -> str:
|
||||
"""Ermittelt die ALKIS-Länderkennung für einen Plugin-Präfix.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
plugin_praefix : str, optional
|
||||
Plugin-Präfix ohne Unterstrich, z.B. ``"sn"``. Wird kein Präfix
|
||||
übergeben, wird er aus dem Package-Namen des aufrufenden Moduls
|
||||
abgeleitet (``__name__`` des Aufrufers, erstes ``_``-Segment).
|
||||
|
||||
Returns
|
||||
-------
|
||||
str
|
||||
Zweistellige Länderkennung, z.B. ``"14"``.
|
||||
|
||||
Raises
|
||||
------
|
||||
KeyError
|
||||
Wenn für den ermittelten Präfix keine Länderkennung hinterlegt ist.
|
||||
"""
|
||||
if not plugin_praefix:
|
||||
import inspect
|
||||
|
||||
frame = inspect.stack()[1]
|
||||
caller_module = frame.frame.f_globals.get("__name__", "")
|
||||
plugin_praefix = caller_module.split(".")[0].split("_")[0]
|
||||
|
||||
plugin_praefix = plugin_praefix.lower()
|
||||
if plugin_praefix not in LAENDERKENNUNGEN:
|
||||
raise KeyError(
|
||||
f"Keine Länderkennung für Plugin-Präfix '{plugin_praefix}' hinterlegt. "
|
||||
f"Bekannte Präfixe: {sorted(LAENDERKENNUNGEN)}"
|
||||
)
|
||||
return LAENDERKENNUNGEN[plugin_praefix]
|
||||
Reference in New Issue
Block a user