File size: 668 Bytes
f2604df 8a76ade f2604df 8a76ade f2604df | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | from fastapi import FastAPI, Request
from fastapi.responses import JSONResponse
import sys
import io
import traceback
app = FastAPI()
@app.post("/execute")
async def execute_code(request: Request):
data = await request.json()
code = data.get("code", "")
output = io.StringIO()
sys_stdout = sys.stdout
sys.stderr = sys.stderr
sys.stdout = output
sys.stderr = output
try:
exec(code, {})
result = output.getvalue()
except Exception:
result = output.getvalue() + "\n" + traceback.format_exc()
finally:
sys.stdout = sys_stdout
sys.stderr = sys.stderr
return JSONResponse({"result": resul |