rabiyulfahim commited on
Commit
a310d13
·
verified ·
1 Parent(s): cdbefad

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +5 -6
app.py CHANGED
@@ -1,13 +1,15 @@
1
  from fastapi import FastAPI, Request, Form
2
  from fastapi.responses import HTMLResponse
 
3
  from fastapi.templating import Jinja2Templates
4
  import sys
5
  import io
 
6
 
7
  app = FastAPI()
 
8
  templates = Jinja2Templates(directory="templates")
9
 
10
- # --- Core tracer logic ---
11
  def run_code_with_trace(code: str):
12
  trace_data = []
13
  stdout_capture = io.StringIO()
@@ -22,7 +24,7 @@ def run_code_with_trace(code: str):
22
 
23
  sys.settrace(tracer)
24
  try:
25
- exec(code, {}, {})
26
  except Exception as e:
27
  trace_data.append({"error": str(e)})
28
  finally:
@@ -30,15 +32,12 @@ def run_code_with_trace(code: str):
30
 
31
  output = stdout_capture.getvalue()
32
  stdout_capture.close()
33
-
34
  return trace_data, output
35
 
36
-
37
  @app.get("/", response_class=HTMLResponse)
38
  async def index(request: Request):
39
  return templates.TemplateResponse("index.html", {"request": request})
40
 
41
-
42
  @app.post("/run", response_class=HTMLResponse)
43
  async def run_code(request: Request, code: str = Form(...)):
44
  trace, output = run_code_with_trace(code)
@@ -46,7 +45,7 @@ async def run_code(request: Request, code: str = Form(...)):
46
  "index.html",
47
  {
48
  "request": request,
49
- "trace": trace,
50
  "output": output,
51
  "code": code
52
  }
 
1
  from fastapi import FastAPI, Request, Form
2
  from fastapi.responses import HTMLResponse
3
+ from fastapi.staticfiles import StaticFiles
4
  from fastapi.templating import Jinja2Templates
5
  import sys
6
  import io
7
+ import json
8
 
9
  app = FastAPI()
10
+ app.mount("/static", StaticFiles(directory="static"), name="static")
11
  templates = Jinja2Templates(directory="templates")
12
 
 
13
  def run_code_with_trace(code: str):
14
  trace_data = []
15
  stdout_capture = io.StringIO()
 
24
 
25
  sys.settrace(tracer)
26
  try:
27
+ exec(code, {})
28
  except Exception as e:
29
  trace_data.append({"error": str(e)})
30
  finally:
 
32
 
33
  output = stdout_capture.getvalue()
34
  stdout_capture.close()
 
35
  return trace_data, output
36
 
 
37
  @app.get("/", response_class=HTMLResponse)
38
  async def index(request: Request):
39
  return templates.TemplateResponse("index.html", {"request": request})
40
 
 
41
  @app.post("/run", response_class=HTMLResponse)
42
  async def run_code(request: Request, code: str = Form(...)):
43
  trace, output = run_code_with_trace(code)
 
45
  "index.html",
46
  {
47
  "request": request,
48
+ "trace_json": json.dumps(trace),
49
  "output": output,
50
  "code": code
51
  }