[FIX] export_csv: Strecken-Attributnamen auf aktuelles Schema nachgezogen
build_variofoerderer_merkmale las noch die alten Attributnamen ohne _mm-Suffix (HOEHE_VON, HOEHE_BIS, DELTA_H, DELTA_L) sowie SEITE/WINKEL. Umbenannt wurden diese in *strecke-attr-front* (ssg_core.lsp) zu HOEHE_VON_mm/HOEHE_BIS_mm/DELTA_H_mm/DELTA_L_mm bzw. aufgeteilt in SEITE_AS/SEITE_ES und GF_WINKEL/VF_WINKEL. Da attribs.get() still den Default "" liefert, blieben die Felder in der Merkmale-Spalte leer statt einen Fehler zu melden - betroffen waren alle VF_n- UND GF_n-Zeilen (beide nutzen denselben Builder). export_sivas.py war bereits nachge- zogen, export_csv.py nicht; aufgefallen ist es nicht, weil tests/reference/export_raw.json noch die alten Namen enthaelt. - Attributnamen korrigiert, Alt-Namen per att()-Helper als Fallback, damit aeltere export_raw.json-Dateien und noch nicht neu aufgebaute Bloecke weiter Werte liefern - Seite_AS/Seite_ES ersetzen das immer leere Seite - VF_Winkel neu neben Winkel (= GF_WINKEL) Geprueft gegen results/export_raw.json (neue Namen) und tests/reference/export_raw.json (Alt-Namen); Pflichtfelder aus tests/test_foerderer.py bleiben vorhanden. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+35
-13
@@ -166,21 +166,43 @@ def build_weiche_merkmale(block, eintrag):
|
||||
|
||||
|
||||
def build_variofoerderer_merkmale(block):
|
||||
"""Merkmale-Dict fuer einen VF_N- oder GF_N-Streckenblock.
|
||||
|
||||
Die Attributnamen folgen dem gemeinsamen Schema *strecke-attr-front* /
|
||||
*strecke-attr-gruppe* in ssg_core.lsp. Hoehen und Delta-Werte tragen dort
|
||||
das Einheiten-Suffix _mm; SEITE ist in SEITE_AS/SEITE_ES (Antriebs-/
|
||||
Endstation) und WINKEL in GF_WINKEL/VF_WINKEL aufgeteilt. Die alten Namen
|
||||
ohne Suffix werden per Fallback weiter gelesen, damit aeltere
|
||||
export_raw.json-Dateien (z.B. tests/reference/export_raw.json) und noch
|
||||
nicht neu aufgebaute Bloecke in der Zeichnung weiterhin Werte liefern.
|
||||
"""
|
||||
attribs = block.get("attribs", {})
|
||||
|
||||
def att(*keys):
|
||||
"""Erster nicht-leerer Attributwert; aktuelles Schema zuerst, Alt-Name
|
||||
als Fallback."""
|
||||
for key in keys:
|
||||
value = attribs.get(key)
|
||||
if value not in (None, ""):
|
||||
return value
|
||||
return ""
|
||||
|
||||
return {
|
||||
"Typ": attribs.get("TYP", ""),
|
||||
"Seite": attribs.get("SEITE", ""),
|
||||
"Winkel": attribs.get("WINKEL", ""),
|
||||
"DeltaH_mm": attribs.get("DELTA_H", ""),
|
||||
"DeltaL_mm": attribs.get("DELTA_L", ""),
|
||||
"L_VF_m": attribs.get("L_VF_m", ""),
|
||||
"L_GF_m": attribs.get("L_GF_m", ""),
|
||||
"Montagehoehe_m": attribs.get("MONTAGEHOEHE_m", ""),
|
||||
"Hoehe_Von_mm": attribs.get("HOEHE_VON", ""),
|
||||
"Hoehe_Bis_mm": attribs.get("HOEHE_BIS", ""),
|
||||
"Antriebfahrtrichtung": attribs.get("ANTRIEBFAHRTRICHTUNG", ""),
|
||||
"Anzahl_Separator": attribs.get("ANZAHL_SEPARATOR", ""),
|
||||
"Anzahl_Scanner": attribs.get("ANZAHL_SCANNER", ""),
|
||||
"Typ": att("TYP"),
|
||||
"Seite_AS": att("SEITE_AS", "SEITE"),
|
||||
"Seite_ES": att("SEITE_ES", "SEITE"),
|
||||
"Winkel": att("GF_WINKEL", "WINKEL"),
|
||||
"VF_Winkel": att("VF_WINKEL"),
|
||||
"DeltaH_mm": att("DELTA_H_mm", "DELTA_H"),
|
||||
"DeltaL_mm": att("DELTA_L_mm", "DELTA_L"),
|
||||
"L_VF_m": att("L_VF_m"),
|
||||
"L_GF_m": att("L_GF_m"),
|
||||
"Montagehoehe_m": att("MONTAGEHOEHE_m"),
|
||||
"Hoehe_Von_mm": att("HOEHE_VON_mm", "HOEHE_VON"),
|
||||
"Hoehe_Bis_mm": att("HOEHE_BIS_mm", "HOEHE_BIS"),
|
||||
"Antriebfahrtrichtung": att("ANTRIEBFAHRTRICHTUNG"),
|
||||
"Anzahl_Separator": att("ANZAHL_SEPARATOR"),
|
||||
"Anzahl_Scanner": att("ANZAHL_SCANNER"),
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user