import gradio as gr | |
import io | |
import sys | |
class PersistentRunner: | |
def __init__(self): | |
self.globals = {} | |
def run(self, code): | |
old_stdout = sys.stdout | |
sys.stdout = buffer = io.StringIO() | |
try: | |
exec(code, self.globals) | |
except Exception as e: | |
print(f"Error: {e}") | |
finally: | |
sys.stdout = old_stdout | |
return buffer.getvalue() | |
runner = PersistentRunner() | |
def run(code): | |
return runner.run(code) | |
demo = gr.Interface(fn=run, inputs="text", outputs="text") | |
demo.launch() | |