| | 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 |