from qgis.core import QgsProject, QgsExpressionContextUtils def get_variable(key: str, scope: str = "project") -> str: """ Liefert den Wert einer sn_* Variable zurück. key: Name ohne Präfix, z.B. "verfahrensnummer" scope: 'project' oder 'global' """ projekt = QgsProject.instance() var_name = f"sn_{key}" if scope == "project": return QgsExpressionContextUtils.projectScope(projekt).variable(var_name) or "" elif scope == "global": return QgsExpressionContextUtils.globalScope().variable(var_name) or "" else: raise ValueError("Scope muss 'project' oder 'global' sein.") def set_variable(key: str, value: str, scope: str = "project"): """ Schreibt den Wert einer sn_* Variable. key: Name ohne Präfix, z.B. "verfahrensnummer" value: Wert, der gespeichert werden soll scope: 'project' oder 'global' """ projekt = QgsProject.instance() var_name = f"sn_{key}" if scope == "project": QgsExpressionContextUtils.setProjectVariable(projekt, var_name, value) elif scope == "global": QgsExpressionContextUtils.setGlobalVariable(var_name, value) else: raise ValueError("Scope muss 'project' oder 'global' sein.")