mtl-aas/src/mtl/run_server.py
2025-11-06 20:57:08 +01:00

36 lines
1.2 KiB
Python

from .parser import parse
from flask import Flask, request, make_response, jsonify
from flask_cors import CORS
app = Flask(__name__)
CORS(app) # side effects, always nice
@app.route("/check_property", methods=["POST"])
def check_property():
data = request.get_json(); # parse body
prop = data.get("property")
try:
phi = parse(prop)
except Exception as e:
res = make_response(jsonify("parse error: " + str(e)))
res.headers['Access-Control-Allow-Origin'] = '*'
res.content_type = "application/json"
return res
traces = data.get("traces")
processed_traces = {}
for trace_name, trace in traces.items():
processed_traces[trace_name] = [(simtime, value) for [simtime, value] in trace]
try:
result = phi(processed_traces, time=None, quantitative=False)
except Exception as e:
res = make_response(jsonify("eval error: " + str(e)))
res.headers['Access-Control-Allow-Origin'] = '*'
res.content_type = "application/json"
return res
res = make_response(jsonify(result))
res.headers['Access-Control-Allow-Origin'] = '*'
res.content_type = "application/json"
return res
def run_server():
app.run(host="127.0.0.1", port=15478, threaded=True)