diff --git a/server.py b/server.py new file mode 100644 index 0000000..95a87af --- /dev/null +++ b/server.py @@ -0,0 +1,34 @@ +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)