turn this thing into a HTTP endpoint

This commit is contained in:
Joeri Exelmans 2025-11-05 23:53:29 +01:00
parent ceb2567ef9
commit 8359d6e521
33 changed files with 1321 additions and 514 deletions

29
src/mtl/run_server.py Normal file
View file

@ -0,0 +1,29 @@
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("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]
res = make_response(jsonify(phi(processed_traces, time=None, quantitative=False)))
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)