#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ testdata_schema.py - Feldnamen und feste Werte der JSON-Testdaten-Schemas aus doc/json-input-lisp.md, als einzige Quelle fuer alle Erzeuger. Bisher standen dieselben Feldnamen ("function", "abstand", "deltaL_mm", "as_seite", ...) als lose String-Literale unabhaengig in dxf_scan_components.py (fremde Zeichnungen) UND dxf_anlage_export.py (eigene, mit unseren Makros gebaute Zeichnungen) - ein Tippfehler oder eine Schema-Aenderung in nur einer der beiden Dateien waere nicht aufgefallen. Dieses Modul buendelt sie an einer Stelle; die LISP-Treiber (tests/test_*.lsp) lesen die JSON-Keys direkt als Strings und sind davon nicht betroffen. Nur Feldnamen/feste Werte, KEINE Validierung oder Default-Logik - die bleibt bewusst in den jeweiligen Erzeugern, deren Kontext (fremde vs. eigene Zeichnung) unterschiedliche Fallbacks braucht. """ # --- Gemeinsame Felder --- F_FUNCTION = "function" F_ID = "id" F_TEST_ID = "test_id" F_BLOCK = "block" F_X = "x" F_Y = "y" F_Z = "z" F_ROTATION = "rotation" F_COMMENT = "comment" FUNC_INSERT = "insert" FUNC_CONNECT = "connect" # --- Abschnitt 1 (json-input-lisp.md): Kreisel --- F_ABSTAND = "abstand" F_TYP = "typ" F_DREHRICHTUNG = "drehrichtung" TYP_STANDARD = "STANDARD" TYP_PIN = "PIN" DREHRICHTUNG_UZS = "UZS" DREHRICHTUNG_GUZ = "GUZ" # --- Abschnitt 3: VarioFoerderer Standard und Etage --- F_VF_TYP = "typ" F_RICHTUNG = "richtung" F_DELTA_L = "deltaL" F_DELTA_H = "deltaH" F_WINKEL = "winkel" F_L_GF1 = "L_GF1" F_GF_VERTEILUNG = "gf_verteilung" F_SEITE = "seite" F_MOTORSEITE = "motorseite" F_HZ = "hz" VF_TYP_STANDARD = "standard" VF_TYP_ETAGE = "etage" RICHTUNG_AUF = "Auf" RICHTUNG_AB = "Ab" SEITE_LINKS = "links" SEITE_RECHTS = "rechts" # --- Abschnitt 4.1: Gefaellestrecke Modus 1 --- F_MODUS = "modus" F_DELTAL_MM = "deltaL_mm" F_WINKEL_GRAD = "winkel_grad" F_HZ_GRAD = "hz_grad" F_START_MM = "start_mm" F_AS_SEITE = "as_seite" F_ES_SEITE = "es_seite" F_AS_WINKEL = "as_winkel" F_ES_WINKEL = "es_winkel" GF_MODUS_WERTEINGABE = 1 GF_MODUS_RICHTUNG_AUS_PUNKTEN = 2 GF_MODUS_LINIENZUG = 3 SCHLEUS_WINKEL_90 = "90" SCHLEUS_WINKEL_30 = "30"