import gradio as gr import ast import traceback def optimize_and_debug(code): """Attempts to optimize and debug the given Python code.""" try: tree = ast.parse(code) # Rudimentary optimization: This is a placeholder. Real optimization is complex. # Here we just check for unnecessary nested loops (a very simple example). nested_loops = False for node in ast.walk(tree): if isinstance(node, ast.For) and any(isinstance(subnode, ast.For) for subnode in ast.walk(node)): nested_loops = True break optimization_suggestions = [] if nested_loops: optimization_suggestions.append("Consider optimizing nested loops. They can significantly impact performance.") # Execution and error handling exec(code, {}) # Execute the code (Caution: security implications for untrusted input) return "Code executed successfully.", optimization_suggestions, "" except Exception as e: error_message = traceback.format_exc() return "Code execution failed.", [], error_message iface = gr.Interface( fn=optimize_and_debug, inputs=gr.Textbox(lines=10, label="Enter your Python code here:"), outputs=[ gr.Textbox(label="Result"), gr.Textbox(label="Optimization Suggestions"), gr.Textbox(label="Error Messages (if any)"), ], title="Python Code Optimizer & Debugger (Simplified)", description="Paste your Python code below. This tool provides basic optimization suggestions and error reporting. Note: This is a simplified demonstration and does not replace a full debugger.", ) iface.launch()