GND_Skript_Test/NormVokabular_Mapper_Wrapper.py
2025-10-10 09:46:41 +02:00

47 lines
1.3 KiB
Python

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))