Spaces:
Sleeping
Sleeping
import gradio as gr | |
import sys | |
from io import StringIO | |
def run_code(code): | |
try: | |
# Redirect stdout to a buffer | |
output_buffer = StringIO() | |
sys.stdout = output_buffer | |
# Execute the code in a separate namespace | |
namespace = {} | |
exec(code, namespace) | |
# Get the output from the buffer | |
output = output_buffer.getvalue() | |
except Exception as e: | |
output = f"Error: {str(e)}" | |
finally: | |
# Reset stdout to its original value | |
sys.stdout = sys.__stdout__ | |
return output | |
# Define the Gradio interface | |
with gr.Blocks() as demo: | |
code_input = gr.Textbox(label="Enter Python Code", lines=10) | |
run_button = gr.Button("Run Code") | |
output_text = gr.Textbox(label="Output", lines=10) | |
# Define the event handler | |
run_button.click(fn=run_code, inputs=code_input, outputs=output_text) | |
# Launch the Gradio app | |
demo.launch() |