c1 / app.py
Araeynn's picture
Update app.py
e05989c verified
raw
history blame
1.18 kB
import gradio as gr
from io import StringIO
import sys
import os
import multiprocessing
original_stdout = sys.stdout
sys.stdout = StringIO()
def execute_code(source, token, output_callback):
sys.stdout = StringIO()
try:
if token != os.environ["special_token"]:
output_callback(["", ""])
else:
exec(source)
console_output = sys.stdout.getvalue().strip()
output_callback([console_output, ""])
except Exception as e:
output_callback(["", f"{e}"])
finally:
sys.stdout = original_stdout
def exc(source, token):
sys.stdout = StringIO()
try:
if token != os.environ["special_token"]:
return ["", ""]
else:
p = multiprocessing.Process(exec, args=[source])
p.start()
for i in range(100):
console_output = sys.stdout.getvalue().strip()
yield ["", console_output]
except Exception as e:
return ["", f"{e}"]
finally:
sys.stdout = original_stdoug
app = gr.Interface(
fn=exc,
inputs=["text", "text"],
outputs=["text", "text"],
live=True
)
app.launch()