Testrun-Export nach tests/output umbiegen, Sivas-Bezeichner-Datei optional, Sivas-Merkmalzuordnung in Config

SSG_RUN_ALL_TESTS_EXPORT setzte *export-test-override* nicht, dadurch
landeten CSV/Sivas-Exporte trotz Automatik-Modus in DXFM_RESULTS statt in
tests/output wie die DXF/DWG-Dateien selbst - jetzt analog zu
TEST_EXPORT_ALL behoben.

EXPORTSIVAS schrieb bisher immer zusaetzlich eine "_mit_bezeichnung.csv"
(Klartext-Kopie). Neuer Schalter "Sivas Export mit Bezeichner" im Dialog
CSV_EXPORT_KONFIG (Standard aus) macht das optional.

Die Attribut->Sivas-Merkmal-Zuordnung der build_*_details-Funktionen in
export_sivas.py (Gefaellestrecke/Kreisel/Eckrad/Geruest/VarioFoerderer,
soweit nicht von der Segmentanzahl abhaengig) liegt jetzt deklarativ in
cfg/sivas.cfg statt hartcodiert im Python - neuer Loader
lib/sivas_mapping.py. Ablauflogik (Gruppierung, Automation-Summenzeile,
Segment-Zaehlung) bleibt Code. Gegen den alten Code mit synthetischen
Testblöcken verifiziert: identische Ausgabe.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Michael Stangl
2026-09-28 16:39:18 +02:00
co-authored by Claude Sonnet 5
parent 33d0688763
commit e8c5cd0a63
6 changed files with 373 additions and 101 deletions
+21 -1
View File
@@ -116,6 +116,18 @@
(defun csv:gefrorene-ausschliessen-setzen (an)
(setq *csv-gefrorene-ausschliessen* (if an T nil)))
;; --- Sivas-Export zusaetzlich mit Klartext-Bezeichnung schreiben ---
;; Standard aus (nil): EXPORTSIVAS schreibt nur die eigentliche <name>_sivas.csv
;; (fuer den Sivas-Import). Nur bei eingeschaltetem Schalter schreibt
;; lib/export_sivas.py zusaetzlich <name>_sivas_mit_bezeichnung.csv (Merkmal-
;; Keys durch Klartext aus cfg/Merkmalsstamm_in_Sivas.xlsx ersetzt, reine
;; Lesehilfe zur manuellen Pruefung, wird von Sivas selbst nicht eingelesen).
;; Bedienbar im Dialog CSV_EXPORT_KONFIG ("Sivas Export mit Bezeichner").
(if (not (boundp '*csv-sivas-mit-bezeichnung*)) (setq *csv-sivas-mit-bezeichnung* nil))
(defun csv:sivas-mit-bezeichnung-p () (if *csv-sivas-mit-bezeichnung* T nil))
(defun csv:sivas-mit-bezeichnung-setzen (an)
(setq *csv-sivas-mit-bezeichnung* (if an T nil)))
;; Hilfsobjekte (car eines Records), deren Wrapper (nth 1) gefroren-fn
;; erfuellt. records = Record-Listen der Form (hilfsobjekt wrapper ...), wie
;; sie csv:sep-proxies-erzeugen, csv:element-proxies-erzeugen,
@@ -2622,8 +2634,14 @@
;; Synchron ausfuehren und Exitcode auswerten - ein stiller
;; Fehlschlag (z.B. WindowsApps-Platzhalter statt Interpreter)
;; darf nicht mehr als "Export gestartet" durchgehen.
;; --mit-bezeichnung nur an export_sivas.py anhaengen (Schalter
;; *csv-sivas-mit-bezeichnung*, Dialog CSV_EXPORT_KONFIG) - export_csv.py
;; kennt dieses Argument nicht.
(setq rc (export:run-python py-exe py-skript
(list out-pfad (getenv "DXFM_DATA") ergebnis-pfad)
(append (list out-pfad (getenv "DXFM_DATA") ergebnis-pfad)
(if (and (= py-name (export:filename "sivas_script"))
(csv:sivas-mit-bezeichnung-p))
(list "--mit-bezeichnung")))
log-pfad))
(cond
((null rc)
@@ -2786,6 +2804,7 @@
(set_tile "modus" (itoa idx))
(set_tile "hilfskopien_behalten" (if (csv:hilfskopien-behalten-p) "1" "0"))
(set_tile "gefrorene_ausschliessen" (if (csv:gefrorene-ausschliessen-p) "1" "0"))
(set_tile "sivas_mit_bezeichnung" (if (csv:sivas-mit-bezeichnung-p) "1" "0"))
)
(defun csv:export-konfig-accept ( / idx modus)
@@ -2794,6 +2813,7 @@
(if modus (csv:export-modus-setzen modus))
(csv:hilfskopien-behalten-setzen (= (get_tile "hilfskopien_behalten") "1"))
(csv:gefrorene-ausschliessen-setzen (= (get_tile "gefrorene_ausschliessen") "1"))
(csv:sivas-mit-bezeichnung-setzen (= (get_tile "sivas_mit_bezeichnung") "1"))
)
(defun c:CSV_EXPORT_KONFIG ()