| import gradio as gr
|
|
|
| from controllers.data_controller import wire_callbacks
|
|
|
|
|
| def build(state):
|
| gr.Markdown("## π Data Management")
|
|
|
|
|
|
|
|
|
| with gr.Row():
|
| file_input = gr.File(
|
| label="Upload CSV or Excel",
|
| file_types=[".csv", ".xlsx"],
|
| elem_classes=["data-selector"],
|
| )
|
|
|
| status_output = gr.Textbox(
|
| label="Status",
|
| interactive=False,
|
| )
|
|
|
| preview_checkbox = gr.Checkbox(
|
| label="Show Preview",
|
| value=False,
|
| )
|
|
|
| overview_checkbox = gr.Checkbox(
|
| label="Show Dataset Summary",
|
| value=False,
|
| )
|
|
|
|
|
| csv_preview = gr.Dataframe(
|
| label="CSV Preview",
|
| visible=False,
|
| )
|
|
|
| desc_output = gr.Dataframe(
|
| label="Descriptive Summary",
|
| visible=False,
|
| )
|
|
|
| dtypes_output = gr.Dataframe(
|
| label="Variable Types",
|
| visible=False,
|
| )
|
|
|
|
|
|
|
|
|
| with gr.Accordion("β Filter Data", open=False):
|
|
|
| gr.Markdown(
|
| "βΉοΈ **Filtering is limited to a maximum of 3 categorical variables at a time.**"
|
| )
|
|
|
| with gr.Row():
|
| cat_col_dropdown = gr.Dropdown(
|
| label="Select Categorical Columns for Filter",
|
| interactive=True,
|
| multiselect=True,
|
| max_choices=3,
|
| value=[],
|
| elem_classes=["data-selector"],
|
| elem_id="custom_dropdown",
|
| )
|
|
|
| cat_val_1 = gr.Dropdown(
|
| label="Categories for Filter 1",
|
| interactive=True,
|
| multiselect=True,
|
| visible=False,
|
| value=[],
|
| elem_classes=["data-selector"],
|
| elem_id="custom_dropdown",
|
| )
|
|
|
| cat_val_2 = gr.Dropdown(
|
| label="Categories for Filter 2",
|
| interactive=True,
|
| multiselect=True,
|
| visible=False,
|
| value=[],
|
| elem_classes=["data-selector"],
|
| elem_id="custom_dropdown",
|
| )
|
|
|
| cat_val_3 = gr.Dropdown(
|
| label="Categories for Filter 3",
|
| interactive=True,
|
| multiselect=True,
|
| visible=False,
|
| value=[],
|
| elem_classes=["data-selector"],
|
| elem_id="custom_dropdown",
|
| )
|
|
|
| with gr.Row():
|
| apply_filter_button = gr.Button("π Apply Filter")
|
|
|
| filter_status = gr.Textbox(
|
| label="Filter Status",
|
| interactive=False,
|
| )
|
|
|
| preview_checkbox_filter = gr.Checkbox(
|
| label="Show Preview",
|
| value=False,
|
| )
|
|
|
| overview_checkbox_filter = gr.Checkbox(
|
| label="Show Dataset Summary",
|
| value=False,
|
| )
|
|
|
|
|
| csv_preview_filter = gr.Dataframe(
|
| label="CSV Preview",
|
| visible=False,
|
| )
|
|
|
| desc_output_filter = gr.Dataframe(
|
| label="Descriptive Summary",
|
| visible=False,
|
| )
|
|
|
| dtypes_output_filter = gr.Dataframe(
|
| label="Variable Types",
|
| visible=False,
|
| )
|
|
|
|
|
|
|
|
|
| with gr.Accordion("π οΈ Fix Variable Type", open=False):
|
|
|
| with gr.Row():
|
| num_override_dropdown = gr.Dropdown(
|
| label="Reclassify Numeric Column as Categorical",
|
| interactive=True,
|
| multiselect=False,
|
| value=None,
|
| elem_classes=["data-selector"],
|
| elem_id="custom_dropdown",
|
| )
|
|
|
| fix_to_categorical_button = gr.Button(
|
| "Reclassify as Categorical"
|
| )
|
|
|
| cat_override_dropdown = gr.Dropdown(
|
| label="Reclassify Categorical Column as Numeric",
|
| interactive=True,
|
| multiselect=False,
|
| value=None,
|
| elem_classes=["data-selector"],
|
| elem_id="custom_dropdown",
|
| )
|
|
|
| fix_to_numeric_button = gr.Button(
|
| "Reclassify as Numeric"
|
| )
|
|
|
| fix_dtype_status = gr.Textbox(
|
| label="Status",
|
| interactive=False,
|
| )
|
|
|
| wire_callbacks(
|
|
|
|
|
|
|
| file_input=file_input,
|
| status_output=status_output,
|
| state=state,
|
|
|
|
|
|
|
|
|
| preview_checkbox=preview_checkbox,
|
| overview_checkbox=overview_checkbox,
|
| csv_preview=csv_preview,
|
| desc_output=desc_output,
|
| dtypes_output=dtypes_output,
|
|
|
|
|
|
|
|
|
| num_to_cat=num_override_dropdown,
|
| cat_to_num=cat_override_dropdown,
|
| fix_to_categorical_button=fix_to_categorical_button,
|
| fix_to_numeric_button=fix_to_numeric_button,
|
| fix_dtype_status=fix_dtype_status,
|
|
|
|
|
|
|
|
|
| cat_filter_cols=cat_col_dropdown,
|
| cat_val_1=cat_val_1,
|
| cat_val_2=cat_val_2,
|
| cat_val_3=cat_val_3,
|
| apply_filter_button=apply_filter_button,
|
| filter_status=filter_status,
|
|
|
|
|
|
|
|
|
| preview_checkbox_filter=preview_checkbox_filter,
|
| overview_checkbox_filter=overview_checkbox_filter,
|
| csv_preview_filter=csv_preview_filter,
|
| desc_output_filter=desc_output_filter,
|
| dtypes_output_filter=dtypes_output_filter,
|
| )
|
|
|
|
|