""" Code Snippet Generator - HuggingFace Space Generates ready-to-use code snippets for common development tasks. """ import gradio as gr import json # Code snippet templates SNIPPETS = { "Python": { "File Operations": """ # Read file with open('file.txt', 'r') as f: content = f.read() # Write file with open('file.txt', 'w') as f: f.write('content') # JSON import json with open('data.json') as f: data = json.load(f) # CSV import csv with open('data.csv') as f: reader = csv.DictReader(f) for row in reader: pass """, "Error Handling": """ try: result = risky_operation() except ValueError as e: handle_error(e) except (TypeError, KeyError): pass else: success_case() finally: cleanup() """, }, "JavaScript": { "Async/Await": """ // Fetch with async/await async function getData(url) { try { const res = await fetch(url); const data = await res.json(); return data; } catch (err) { console.error(err); } } // Parallel requests const [users, posts] = await Promise.all([ fetch('/users').then(r => r.json()), fetch('/posts').then(r => r.json()) ]); """, "Array Methods": """ // Map, filter, reduce const doubled = arr.map(x => x * 2); const evens = arr.filter(x => x % 2 === 0); const sum = arr.reduce((a, b) => a + b, 0); // Find first match const user = users.find(u => u.id === targetId); // Group by property const grouped = arr.reduce((acc, item) => { (acc[item.type] = acc[item.type] || []).push(item); return acc; }, {}); """, }, } def generate_snippet(language, task): """Generate a code snippet for the given language and task""" if language in SNIPPETS: for task_name, snippet in SNIPPETS[language].items(): if task.lower() in task_name.lower() or task_name.lower() in task.lower(): return snippet # Default response return f"# {language} snippet for: {task}\n\n// Generated by Code Snippet Generator\n// Customize this template as needed\n\ndef task():\n pass" # Gradio interface with gr.Blocks() as demo: gr.Markdown(""" # Code Snippet Generator Get ready-to-use code snippets for common development tasks. **Languages:** Python, JavaScript, SQL, Bash **Tasks:** File I/O, Error Handling, Async, Array Operations, and more """) with gr.Row(): language = gr.Dropdown( choices=["Python", "JavaScript", "SQL", "Bash"], value="Python", label="Language" ) task = gr.Dropdown( choices=["File Operations", "Error Handling", "Async/Await", "Array Methods"], value="File Operations", label="Task" ) generate_btn = gr.Button("Generate Snippet", variant="primary") output = gr.Code(label="Generated Code", language="python") generate_btn.click( fn=generate_snippet, inputs=[language, task], outputs=output ) if __name__ == "__main__": demo.launch()