from fastapi import FastAPI from pydantic import BaseModel import subprocess import tempfile import sys import os app = FastAPI() class CodeRequest(BaseModel): code: str @app.post("/execute") def execute_code(req: CodeRequest): with tempfile.NamedTemporaryFile( suffix=".py", delete=False ) as f: f.write(req.code.encode("utf-8")) filename = f.name try: result = subprocess.run( [sys.executable, filename], capture_output=True, text=True, timeout=30 ) return { "stdout": result.stdout, "stderr": result.stderr, "returncode": result.returncode } finally: os.remove(filename)