import subprocess import json import sys from pathlib import Path def run_mapper(term): """ Ruft das bestehende mapper script auf und liefert Vorschläge zurück. Erwartet, dass das mapper script eine JSON-Ausgabe liefert: { "term": "Begriff", "norm_name": "Normierter Treffer oder KEIN TREFFER", "norm_id": "ID", "suggestions": ["Vorschlag1", "Vorschlag2", "Vorschlag3"] } """ mapper_script = Path("/home/jarnold/projects/GND-Skript Test/NormVokabular_Mapper_1.2.py") # dein bestehendes Mapper-Skript if not mapper_script.exists(): raise FileNotFoundError(f"{mapper_script} nicht gefunden") # Übergabe als JSON-String input_json = json.dumps({"term": term}) # Aufruf via subprocess result = subprocess.run( [sys.executable, str(mapper_script), input_json], capture_output=True, text=True ) if result.returncode != 0: raise RuntimeError(f"Mapper Fehler: {result.stderr}") try: output = json.loads(result.stdout) except Exception as e: raise ValueError(f"Ungültige Ausgabe vom Mapper: {e}") return output if __name__ == "__main__": if len(sys.argv) > 1: term = sys.argv[1] output = run_mapper(term) print(json.dumps(output, ensure_ascii=False))