| """ |
| Code Snippet Generator - HuggingFace Space |
| Generates ready-to-use code snippets for common development tasks. |
| """ |
|
|
| import gradio as gr |
| import json |
|
|
| |
| 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 |
| |
| |
| return f"# {language} snippet for: {task}\n\n// Generated by Code Snippet Generator\n// Customize this template as needed\n\ndef task():\n pass" |
|
|
| |
| 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() |
|
|