"""Gezielte Suche in INB-Hauptdokument nach pathOS-relevanten Themen.""" import re with open("project-audit/data/INB-2027-Hauptdokument-data.txt", "r", encoding="utf-8") as f: text = f.read() searches = [ # Expresstrassen / Prioritaet ("Expresstrasse|Expressangebot|Express-Trasse|Vorrangtrasse|vorrangig|Priorität.*Trasse", "Expresstrassen/Vorrang"), # Relevanz-Kategorien ("sehr hohe|hohe Relevanz|mittlere Relevanz|geringe Relevanz|Relevanz", "Relevanz-Kategorien"), # 20h / Tageswechsel ("20 Stunden|20h|Tageswechsel|Verkehrstag.*wechsel|über.*Mitternacht", "20h/Tageswechsel"), # NAÄ / implizite Annahme ("netzausgelöst|NAÄ|implizit.*Annahme|automatisch.*Annahme|Annahme.*Frist", "NAÄ/Implizite Annahme"), # Abrechnung ("Abrechnung.*Trasse|Trassenentgelt|Fakturierung|Rechnungsstellung", "Abrechnung"), # Stornierung ("Stornierung.*Frist|Stornogebühr|Stornierungsentgelt", "Stornierung/Fristen"), # GelV spezifisch ("Gelegenheitsverkehr.*Frist|GelV|ad.hoc", "GelV/Ad-hoc"), # Schnittstelle / Common Interface ("Common Interface|Schnittstelle.*TAF|Schnittstelle.*TAP|XSD|XML.*Nachricht", "Schnittstelle/CI"), # Kapazitaet / Koordinierung ("Kapazitätskonflikt|Koordinierungsverfahren|Überlastung", "Kapazitaet"), # Baubedingt ("baubedingt|Baumaßnahme|Sperrung.*Strecke", "Baubedingt"), ] for pattern, label in searches: matches = list(re.finditer(pattern, text, re.IGNORECASE)) if matches: print(f"\n{'='*80}") print(f" {label}: {len(matches)} Treffer") print(f"{'='*80}") for m in matches[:4]: start = max(0, m.start() - 60) end = min(len(text), m.start() + 250) ctx = text[start:end].replace("\n", " ").strip() # Markiere den Match print(f"\n ...{ctx}...") else: print(f"\n {label}: KEINE TREFFER")