Datasets-Metrics-Viewer / src /view /reverse_search_tab.py
hynky's picture
hynky HF staff
nits
638184c
from functools import partial
import gradio as gr
from src.logic.data_fetching import fetch_groups, fetch_metrics, reverse_search, reverse_search_add
def create_reverse_search_tab(base_folder: gr.Textbox, datasets_available: gr.State, datasets_selected: gr.Dropdown):
reverse_search_headline = gr.Markdown(value="# Reverse Metrics Search")
with gr.Row():
with gr.Column(scale=1):
reverse_grouping_dropdown = gr.Dropdown(
choices=[],
label="Grouping",
multiselect=False,
)
reverse_metric_name_dropdown = gr.Dropdown(
choices=[],
label="Metric Name",
multiselect=False,
)
reverse_search_button = gr.Button("Search")
reverse_search_add_button = gr.Button("Add to selection")
with gr.Column(scale=2):
reverse_search_results = gr.Textbox(
label="Found datasets",
lines=10,
placeholder="Found datasets containing the group/metric name. You can modify the selection after search by removing unwanted lines and clicking Add to selection"
)
datasets_available.change(
fn=partial(fetch_groups, type="union"),
inputs=[base_folder, datasets_available, reverse_grouping_dropdown],
outputs=[reverse_grouping_dropdown],
)
reverse_grouping_dropdown.select(
fn=partial(fetch_metrics, type="union"),
inputs=[base_folder, datasets_available, reverse_grouping_dropdown, reverse_metric_name_dropdown],
outputs=reverse_metric_name_dropdown,
)
reverse_search_button.click(
fn=partial(reverse_search),
inputs=[base_folder, datasets_available, reverse_grouping_dropdown, reverse_metric_name_dropdown],
outputs=reverse_search_results,
)
reverse_search_add_button.click(
fn=reverse_search_add,
inputs=[datasets_selected, reverse_search_results],
outputs=datasets_selected,
)