ArneBinder's picture
update from https://github.com/ArneBinder/pie-document-level/pull/397
ced4316 verified
raw
history blame
1.63 kB
from typing import Any, Union
import gradio as gr
import pandas as pd
def escape_regex(regex: str) -> str:
# "double escape" the backslashes
result = regex.encode("unicode_escape").decode("utf-8")
return result
def unescape_regex(regex: str) -> str:
# reverse of escape_regex
result = regex.encode("utf-8").decode("unicode_escape")
return result
def open_accordion():
return gr.Accordion(open=True)
def close_accordion():
return gr.Accordion(open=False)
def open_accordion_with_stats(
overview: pd.DataFrame, base_label: str, caption2column: dict[str, str], total_column: str
):
caption2value = {
caption: len(overview) if column == total_column else overview[column].sum()
for caption, column in caption2column.items()
}
stats_str = ", ".join([f"{value} {caption}" for caption, value in caption2value.items()])
label = f"{base_label} ({stats_str})"
return gr.Accordion(open=True, label=label)
def change_tab(id: Union[int, str]):
return gr.Tabs(selected=id)
def get_cell_for_fixed_column_from_df(
evt: gr.SelectData,
df: pd.DataFrame,
column: str,
) -> Any:
"""Get the value of the fixed column for the selected row in the DataFrame.
This is required can *not* with a lambda function because that will not get
the evt parameter.
Args:
evt: The event object.
df: The DataFrame.
column: The name of the column.
Returns:
The value of the fixed column for the selected row.
"""
row_idx, col_idx = evt.index
doc_id = df.iloc[row_idx][column]
return doc_id