server.py hinzugefügt
This commit is contained in:
34
server.py
Normal file
34
server.py
Normal file
@@ -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)
|
||||||
Reference in New Issue
Block a user