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