File size: 1,510 Bytes
4928a1a
d7e53e8
 
4928a1a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d7e53e8
 
4928a1a
 
 
d7e53e8
 
4928a1a
 
d7e53e8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4928a1a
d7e53e8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
from models.registry import MODEL_GROUPS, REGRESSION_GRAPHS, CLASSIFICATION_GRAPHS
import gradio as gr
import pandas as pd
import os

def reset_on_task_change(task_type):
    """
    When task changes:
    - Model Group → Basic
    - Model → first model of Basic group for selected task
    """
    model_group = "Basic"
    models = MODEL_GROUPS[model_group][task_type]
    model_names = list(models.keys())

    return (
        gr.update(value=model_group),
        gr.update(choices=model_names, value=model_names[0])
    )


def update_models(task_type, model_group):
    models = MODEL_GROUPS.get(model_group, {}).get(task_type, {})
    model_names = list(models.keys())

    return gr.update(
        choices=model_names,
        value=model_names[0] if model_names else None
    )


def update_graphs(task_type):
    graphs = (
        REGRESSION_GRAPHS
        if task_type == "Regression"
        else CLASSIFICATION_GRAPHS
    )

    return gr.update(
        choices=graphs,
        value=graphs[0],   # ✅ auto-select first option
    )

import os

def preview_csv(file, max_rows=10):
    if not file:
        return None

    size_mb = os.path.getsize(file.name) / (1024 * 1024)

    if size_mb > 50:
        return None  # ❌ No preview

    return pd.read_csv(file.name, nrows=max_rows)



def reset_metrics_on_file_clear(file):
    if file is None:
        return pd.DataFrame(), None
    return gr.update(), gr.update()


def toggle_csv_preview(show):
    return gr.update(visible=show)