TRO-Fluss: tro_overrides.ini standardmaessig aus, ungelistete Strecken-Separatoren lagerichtig verketten

- tro_flow/tro_annotate: cfg/tro_overrides.ini nur noch mit --use-overrides
  (die Abschnitte haengen an laufenden TRO-Nummern und am CSV-Namen und
  veralten mit jedem Export; [export.csv.connections] ersetzte alle
  abgeleiteten Kanten und liess TRO13-20 unverbunden)
- link_tros: Separatoren mit Zuordnung auf eine Strecke, die in keiner
  TrackIds-Liste stehen, per Projektion AS->ES in die Strecken-Kette
  einsortieren (Mubea VF_3: 0037/0038 erzeugten je 9 Fehlkanten;
  mubea 38 -> 22 Verbindungen, HundM05 unveraendert)
- tro_catalog: typ-eigene Fuellfarbe je TRO-Typ, Mermaid-classDefs je Typ
- tro_overrides/tro_flow: connect.ini zurueck einlesen (--from-connect)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Samer Ayadi
2026-10-01 10:50:40 +02:00
co-authored by Claude Opus 5.5
parent 1479519bdc
commit 02db9a95b0
4 changed files with 381 additions and 26 deletions
+7 -2
View File
@@ -102,7 +102,7 @@ from dxf_registration import (
from material_flow import build_graph, env_dir, read_elements, resolve_input
from tro_catalog import STYLES, TRO_CATALOG, TroSymbol, get_tro
from tro_flow import Analysis, analyse_tros
from tro_overrides import load_overrides
from tro_overrides import Overrides, load_overrides
# ---------------------------------------------------------------------------
# Konstanten
@@ -782,6 +782,10 @@ def parse_args(argv: list[str] | None = None) -> argparse.Namespace:
parser.add_argument("--emit-lisp", action="store_true",
help="cad/tro_types.lsp aus dem Typkatalog neu schreiben "
"(Auswahlliste des Dialogs TROEDIT) und beenden.")
parser.add_argument("--use-overrides", action="store_true",
help="Manuelle Korrekturen aus cfg/tro_overrides.ini "
"anwenden. Standard ist AUS - wie bei tro_flow, "
"damit Marker und Flussdiagramm zusammenpassen.")
return parser.parse_args(argv)
@@ -834,7 +838,8 @@ def main(argv: list[str] | None = None) -> int:
print(f"FEHLER: {csv_file} nicht lesbar: {exc}", file=sys.stderr)
return 1
graph = build_graph(elements, csv_file.name, read_warnings)
overrides = load_overrides(csv_file.name, cfg_dir)
overrides = (load_overrides(csv_file.name, cfg_dir) if args.use_overrides
else Overrides())
analysis = analyse_tros(graph, elements, overrides)
if not analysis.tros:
print(f"FEHLER: keine TROs aus {csv_file} ableitbar.", file=sys.stderr)