Team Ai
Apppublic

vineyard03/Code-Repair-w-LLMs

sourceHugging Faceupdated 2y agoView on Hugging Face
1likes
interface_utils.py106 linesDownload Raw Back to utils
1# event handlers
2
3import gradio as gr
4
5def custom_theme():
6    # Gradio UI styling
7    return gr.themes.Ocean(
8        primary_hue=gr.themes.Color(c100="#fef9c3", c200="#fef08a", c300="#fde047", c400="#facc15", c50="#fefce8", c500="#eab308", c600="#ca8a04", c700="#a16207", c800="#854d0e", c900="#713f12", c950="#BA9B37"),
9        secondary_hue="zinc",
10        radius_size="lg",
11    ).set(
12        background_fill_primary='*neutral_900',
13        background_fill_secondary='*neutral_700',
14        body_background_fill='*secondary_900',
15        body_text_color='*neutral_100',
16        body_text_color_subdued='*neutral_400',
17        border_color_accent='*neutral_900',
18        button_secondary_background_fill='linear-gradient(120deg, *secondary_900 0%, *primary_400 50%, *primary_700 100%)',
19        button_secondary_background_fill_hover='linear-gradient(120deg, *secondary_900 0%, *primary_400 50%, *primary_700 100%)',
20        checkbox_label_background_fill_selected="linear-gradient(120deg, *secondary_900 0%, *primary_400 50%, *primary_700 100%)",
21        code_background_fill='*neutral_950',
22        color_accent_soft='*primary_950',
23        input_background_fill='*neutral_700',
24        table_odd_background_fill='*neutral_700'
25    )
26
27def custom_css():
28    return """
29    .fixed-height 
30    {
31        height: 300px !important;
32        overflow-y: auto !important;
33    }
34
35    .stage-box 
36    {
37        text-align: center !important;
38        font-weight: bold !important;
39    }
40
41    .title 
42    { 
43        text-align: center; 
44        font-size: 2rem; 
45        font-weight: bold; 
46    }
47
48    .subtitle 
49    { 
50        text-align: center;
51        font-size: 1.2rem;
52    }
53
54    .big-checkboxes label 
55    { 
56        font-size: 1.5rem;
57        display: block; 
58        text-align: center;
59    }
60
61    .big-button 
62    { 
63        font-size: 1.5rem; 
64        padding: 10px 20px; 
65        display: block; 
66        margin: 0 auto; 
67    }
68
69    """
70
71def display_file_content(file):
72    if file is None:
73        return "No file uploaded yet."
74    try:
75        if isinstance(file, str):
76            with open(file, 'r') as f:
77                return f.read()
78        elif hasattr(file, 'name'):
79            return file.name
80        elif hasattr(file, 'read'):
81            return file.read().decode('utf-8')
82        else:
83            return str(file)
84    except Exception as e:
85        return f"An error occurred while reading the file: {str(e)}"
86
87def process_file(file, language):
88    if file is None:
89        return "Skipped", "Skipped", "Skipped", "Skipped", "Please upload a file."
90    
91    try:
92        content = display_file_content(file)
93        stage1_result = "Complete"
94        stage2_result = "Complete"
95        stage3_result = "Complete"
96        stage4_result = "Complete"
97        processed_content = process_content(content, language)
98        return stage1_result, stage2_result, stage3_result, stage4_result, processed_content
99    except Exception as e:
100        return "Error", "Error", "Error", "Error", f"An error occurred: {str(e)}"
101
102def process_content(content, language):
103    # This is where you would implement your actual processing logic
104    # For now, we'll just return the file content with a message
105    return f"Processing {language} code:\n\n{content}\n\nProcessing complete."
106