36 lines
1.2 KiB
Python
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)
|