Gefunden ueber das neue Skript scripts/pruefe_umlaute.py, das genau dieses
Muster (ASCII-Ersatzschreibweise statt Umlaut in String-Inhalten und
Kommentaren mit Leerzeichen) erkennt.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MneDjzrjmbpQt8udFYxN9e
Weitere Fundstellen aus der gezielten Umlaut-Pruefung: MessageBox-/Label-Texte
in print_logic.py, print_layout.py, print_layout_baufreigabe.py und
print_tab.py, die wortwoertlich als ASCII generiert wurden ('gueltig',
'verfuegbar', 'waehlen', 'Massstab' als Anzeigetext, 'Geprueft: '-Label).
Interne Bezeichner (aktion-Codes, Projektvariablen-Keys, Item-IDs) bewusst
unveraendert gelassen, um bestehende Log-/Vergleichslogik nicht zu brechen.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MneDjzrjmbpQt8udFYxN9e
Regex zur Bezeichner-Bereinigung aus Datenschreiber.py in
functions/text_wrapper.py (sanitize_bezeichner) ausgelagert und um
Bindestrich ergänzt, der bisher fehlte. Neue Tests decken Umlaute, ß,
Unterstrich, Bindestrich, eigenes Ersatzzeichen und Leerfälle ab.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MneDjzrjmbpQt8udFYxN9e
DataGrabber.py hatte einen harten Top-Level-Import von
sn_plan41.modules.listenauswerter.Listenauswerter, obwohl DataGrabber sich
selbst als generischer, plugin-übergreifender Orchestrator dokumentiert.
sn_verfahrensgebiet importiert DataGrabber und instanziiert ihn beim
Plugin-Start – dadurch schlug classFactory() fehl, sobald sn_plan41 nicht
installiert war (ModuleNotFoundError: No module named 'sn_plan41').
Import in die einzige Stelle verschoben, die ihn tatsächlich braucht
(_process_excel_source, nur für Excel-Quellen relevant), mit klarer
Fehlermeldung falls doch mal ohne sn_plan41 eine Excel-Quelle verarbeitet
werden soll.
Fixes sn_verfahrensgebiet#35