Spaces:
Sleeping
Sleeping
Upload folder using huggingface_hub
Browse files
README.md
CHANGED
|
@@ -5,7 +5,7 @@ emoji: 🔥
|
|
| 5 |
colorFrom: indigo
|
| 6 |
colorTo: indigo
|
| 7 |
sdk: gradio
|
| 8 |
-
sdk_version:
|
| 9 |
app_file: run.py
|
| 10 |
pinned: false
|
| 11 |
hf_oauth: true
|
|
|
|
| 5 |
colorFrom: indigo
|
| 6 |
colorTo: indigo
|
| 7 |
sdk: gradio
|
| 8 |
+
sdk_version: 6.0.0
|
| 9 |
app_file: run.py
|
| 10 |
pinned: false
|
| 11 |
hf_oauth: true
|
run.ipynb
CHANGED
|
@@ -1 +1 @@
|
|
| 1 |
-
{"cells": [{"cell_type": "markdown", "id": "302934307671667531413257853548643485645", "metadata": {}, "source": ["# Gradio Demo: dataframe_events"]}, {"cell_type": "code", "execution_count": null, "id": "272996653310673477252411125948039410165", "metadata": {}, "outputs": [], "source": ["!pip install -q gradio "]}, {"cell_type": "code", "execution_count": null, "id": "288918539441861185822528903084949547379", "metadata": {}, "outputs": [], "source": ["import gradio as gr\n", "import pandas as pd\n", "import numpy as np\n", "\n", "def update_dataframe():\n", " regular_df = pd.DataFrame(np.random.randint(1, 10, size=(5, 5)), columns=pd.Index([str(i) for i in range(5)]))\n", " wide_df = pd.DataFrame(
|
|
|
|
| 1 |
+
{"cells": [{"cell_type": "markdown", "id": "302934307671667531413257853548643485645", "metadata": {}, "source": ["# Gradio Demo: dataframe_events"]}, {"cell_type": "code", "execution_count": null, "id": "272996653310673477252411125948039410165", "metadata": {}, "outputs": [], "source": ["!pip install -q gradio "]}, {"cell_type": "code", "execution_count": null, "id": "288918539441861185822528903084949547379", "metadata": {}, "outputs": [], "source": ["import gradio as gr\n", "import pandas as pd\n", "import numpy as np\n", "\n", "\n", "def update_dataframe():\n", " regular_df = pd.DataFrame(\n", " np.random.randint(1, 10, size=(5, 5)),\n", " columns=pd.Index([str(i) for i in range(5)]),\n", " )\n", " wide_df = pd.DataFrame(\n", " [\n", " [5, 22, 91, 17, 73, 38, 84, 46, 65, 10, 155, 122, 11, 144, 133],\n", " [81, 42, 13, 97, 33, 77, 59, 100, 29, 61, 213, 195, 142, 118, 127],\n", " [37, 71, 63, 102, 28, 94, 19, 55, 88, 44, 116, 139, 122, 150, 147],\n", " [104, 52, 49, 26, 83, 67, 31, 92, 79, 18, 241, 115, 159, 123, 137],\n", " [16, 95, 74, 68, 43, 101, 27, 85, 39, 57, 129, 148, 132, 111, 156],\n", " ],\n", " columns=pd.Index([f\"col_{i}\" for i in range(15)]),\n", " )\n", " return regular_df, wide_df\n", "\n", "\n", "def clear_dataframes():\n", " regular_empty_df = pd.DataFrame([], columns=pd.Index([str(i) for i in range(5)]))\n", " wide_empty_df = pd.DataFrame([], columns=pd.Index([f\"col_{i}\" for i in range(15)]))\n", " return regular_empty_df, wide_empty_df\n", "\n", "\n", "def increment_select_counter(evt: gr.SelectData, count):\n", " count_val = 1 if count is None else count + 1\n", " return count_val, evt.index, evt.value\n", "\n", "\n", "def edit_dataframe(evt: gr.EditData, count):\n", " event_data = \", \".join(\n", " [\n", " f\"index: {evt.index}\",\n", " f\"value: {evt.value}\",\n", " f\"previous_value: {evt.previous_value}\",\n", " ]\n", " )\n", " return event_data, count + 1\n", "\n", "\n", "with gr.Blocks() as demo:\n", " with gr.Row():\n", " with gr.Column(scale=1):\n", " initial_regular_df = pd.DataFrame(\n", " np.zeros((5, 5), dtype=int),\n", " columns=pd.Index([str(i) for i in range(5)]),\n", " )\n", "\n", " df = gr.Dataframe(\n", " value=initial_regular_df,\n", " interactive=True,\n", " label=\"Interactive Dataframe\",\n", " show_label=True,\n", " elem_id=\"dataframe\",\n", " show_search=\"filter\",\n", " buttons=[\"copy\"],\n", " show_row_numbers=True,\n", " static_columns=[4],\n", " )\n", "\n", " with gr.Column(scale=1):\n", " initial_wide_df = pd.DataFrame(\n", " np.zeros((5, 15), dtype=int),\n", " columns=pd.Index([f\"col_{i}\" for i in range(15)]),\n", " )\n", "\n", " df_view = gr.Dataframe(\n", " value=initial_wide_df,\n", " interactive=False,\n", " label=\"Non-Interactive View (Scroll Horizontally)\",\n", " show_label=True,\n", " show_search=\"search\",\n", " elem_id=\"non-interactive-dataframe\",\n", " buttons=[\"copy\", \"fullscreen\"],\n", " show_row_numbers=True,\n", " )\n", "\n", " tall_df_value = [\n", " [\"DeepSeek Coder\", 79.3, True],\n", " [\"Llama 3.3\", 68.9, True],\n", " [\"Qwen 2.5\", 61.9, True],\n", " [\"Gemma 2\", 59.5, False],\n", " [\"GPT 2\", 18.3, False],\n", " ]\n", "\n", " def get_display_value(values):\n", " display_values = []\n", " medals = [\"\ud83e\udd47\", \"\ud83e\udd48\", \"\ud83e\udd49\"]\n", " for i, row in enumerate(values):\n", " if i < 3:\n", " display_values.append([f\"{medals[i]} {row[0]}\", row[1]])\n", " else:\n", " display_values.append([row[0], row[1]])\n", " return display_values\n", "\n", " display_value = get_display_value(tall_df_value)\n", "\n", " tall_df_value = {\n", " \"data\": tall_df_value,\n", " \"headers\": [\"Model\", \"% Correct (LeetCode Hard)\", \"Is Open Source\"],\n", " \"metadata\": {\"display_value\": display_value},\n", " }\n", "\n", " with gr.Row():\n", " with gr.Column():\n", " df_tall = gr.Dataframe(\n", " value=tall_df_value,\n", " interactive=False,\n", " label=\"Tall Dataframe (Scroll Vertically)\",\n", " datatype=[\"str\", \"number\", \"bool\"],\n", " max_height=200,\n", " show_label=True,\n", " elem_id=\"dataframe_tall\",\n", " buttons=[\"copy\"],\n", " show_row_numbers=True,\n", " show_search=\"search\",\n", " )\n", "\n", " df_tall_selected_cell_index = gr.Textbox(\n", " label=\"Tall dataframe selected cell index\",\n", " elem_id=\"tall_selected_cell_index\",\n", " )\n", " df_tall_selected_cell_value = gr.Textbox(\n", " label=\"Tall dataframe selected cell value\",\n", " elem_id=\"tall_selected_cell_value\",\n", " )\n", "\n", " with gr.Row():\n", " with gr.Column():\n", " update_btn = gr.Button(\"Update dataframe\", elem_id=\"update_btn\")\n", " clear_btn = gr.Button(\"Clear dataframe\", elem_id=\"clear_btn\")\n", "\n", " with gr.Row():\n", " change_events = gr.Number(\n", " value=0, label=\"Change events\", elem_id=\"change_events\"\n", " )\n", " input_events = gr.Number(value=0, label=\"Input events\", elem_id=\"input_events\")\n", " select_events = gr.Number(\n", " value=0, label=\"Select events\", elem_id=\"select_events\"\n", " )\n", " edit_events = gr.Number(value=0, label=\"Edit events\", elem_id=\"edit_events\")\n", "\n", " with gr.Row():\n", " selected_cell_index = gr.Textbox(\n", " label=\"Selected cell index\", elem_id=\"selected_cell_index\"\n", " )\n", " selected_cell_value = gr.Textbox(\n", " label=\"Selected cell value\", elem_id=\"selected_cell_value\"\n", " )\n", " edit_data = gr.Textbox(label=\"Edit event data\", elem_id=\"edit_data\")\n", "\n", " update_btn.click(fn=update_dataframe, outputs=[df, df_view])\n", " clear_btn.click(fn=clear_dataframes, outputs=[df, df_view])\n", " df.change(fn=lambda x: x + 1, inputs=[change_events], outputs=[change_events])\n", " df.edit(edit_dataframe, inputs=[edit_events], outputs=[edit_data, edit_events])\n", " df.input(fn=lambda x: x + 1, inputs=[input_events], outputs=[input_events])\n", " df.select(\n", " fn=increment_select_counter,\n", " inputs=[select_events],\n", " outputs=[select_events, selected_cell_index, selected_cell_value],\n", " )\n", "\n", " df_tall.select(\n", " fn=increment_select_counter,\n", " inputs=[select_events],\n", " outputs=[\n", " select_events,\n", " df_tall_selected_cell_index,\n", " df_tall_selected_cell_value,\n", " ],\n", " )\n", "\n", "if __name__ == \"__main__\":\n", " demo.launch()\n"]}], "metadata": {}, "nbformat": 4, "nbformat_minor": 5}
|
run.py
CHANGED
|
@@ -2,38 +2,54 @@ import gradio as gr
|
|
| 2 |
import pandas as pd
|
| 3 |
import numpy as np
|
| 4 |
|
|
|
|
| 5 |
def update_dataframe():
|
| 6 |
-
regular_df = pd.DataFrame(
|
| 7 |
-
|
| 8 |
-
[
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
[
|
| 12 |
-
|
| 13 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
return regular_df, wide_df
|
| 15 |
|
|
|
|
| 16 |
def clear_dataframes():
|
| 17 |
regular_empty_df = pd.DataFrame([], columns=pd.Index([str(i) for i in range(5)]))
|
| 18 |
wide_empty_df = pd.DataFrame([], columns=pd.Index([f"col_{i}" for i in range(15)]))
|
| 19 |
return regular_empty_df, wide_empty_df
|
| 20 |
|
|
|
|
| 21 |
def increment_select_counter(evt: gr.SelectData, count):
|
| 22 |
count_val = 1 if count is None else count + 1
|
| 23 |
return count_val, evt.index, evt.value
|
| 24 |
|
|
|
|
| 25 |
def edit_dataframe(evt: gr.EditData, count):
|
| 26 |
-
event_data = ", ".join(
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
|
|
|
|
|
|
| 31 |
return event_data, count + 1
|
| 32 |
|
|
|
|
| 33 |
with gr.Blocks() as demo:
|
| 34 |
with gr.Row():
|
| 35 |
with gr.Column(scale=1):
|
| 36 |
-
initial_regular_df = pd.DataFrame(
|
|
|
|
|
|
|
|
|
|
| 37 |
|
| 38 |
df = gr.Dataframe(
|
| 39 |
value=initial_regular_df,
|
|
@@ -42,13 +58,16 @@ with gr.Blocks() as demo:
|
|
| 42 |
show_label=True,
|
| 43 |
elem_id="dataframe",
|
| 44 |
show_search="filter",
|
| 45 |
-
|
| 46 |
show_row_numbers=True,
|
| 47 |
-
static_columns=[4]
|
| 48 |
)
|
| 49 |
|
| 50 |
with gr.Column(scale=1):
|
| 51 |
-
initial_wide_df = pd.DataFrame(
|
|
|
|
|
|
|
|
|
|
| 52 |
|
| 53 |
df_view = gr.Dataframe(
|
| 54 |
value=initial_wide_df,
|
|
@@ -57,9 +76,8 @@ with gr.Blocks() as demo:
|
|
| 57 |
show_label=True,
|
| 58 |
show_search="search",
|
| 59 |
elem_id="non-interactive-dataframe",
|
| 60 |
-
|
| 61 |
show_row_numbers=True,
|
| 62 |
-
show_fullscreen_button=True,
|
| 63 |
)
|
| 64 |
|
| 65 |
tall_df_value = [
|
|
@@ -85,9 +103,7 @@ with gr.Blocks() as demo:
|
|
| 85 |
tall_df_value = {
|
| 86 |
"data": tall_df_value,
|
| 87 |
"headers": ["Model", "% Correct (LeetCode Hard)", "Is Open Source"],
|
| 88 |
-
"metadata": {
|
| 89 |
-
"display_value": display_value
|
| 90 |
-
}
|
| 91 |
}
|
| 92 |
|
| 93 |
with gr.Row():
|
|
@@ -100,16 +116,18 @@ with gr.Blocks() as demo:
|
|
| 100 |
max_height=200,
|
| 101 |
show_label=True,
|
| 102 |
elem_id="dataframe_tall",
|
| 103 |
-
|
| 104 |
show_row_numbers=True,
|
| 105 |
show_search="search",
|
| 106 |
)
|
| 107 |
|
| 108 |
df_tall_selected_cell_index = gr.Textbox(
|
| 109 |
-
label="Tall dataframe selected cell index",
|
|
|
|
| 110 |
)
|
| 111 |
df_tall_selected_cell_value = gr.Textbox(
|
| 112 |
-
label="Tall dataframe selected cell value",
|
|
|
|
| 113 |
)
|
| 114 |
|
| 115 |
with gr.Row():
|
|
@@ -134,12 +152,10 @@ with gr.Blocks() as demo:
|
|
| 134 |
selected_cell_value = gr.Textbox(
|
| 135 |
label="Selected cell value", elem_id="selected_cell_value"
|
| 136 |
)
|
| 137 |
-
edit_data = gr.Textbox(
|
| 138 |
-
label="Edit event data", elem_id="edit_data"
|
| 139 |
-
)
|
| 140 |
|
| 141 |
update_btn.click(fn=update_dataframe, outputs=[df, df_view])
|
| 142 |
-
clear_btn.click(fn=clear_dataframes, outputs=[df, df_view
|
| 143 |
df.change(fn=lambda x: x + 1, inputs=[change_events], outputs=[change_events])
|
| 144 |
df.edit(edit_dataframe, inputs=[edit_events], outputs=[edit_data, edit_events])
|
| 145 |
df.input(fn=lambda x: x + 1, inputs=[input_events], outputs=[input_events])
|
|
@@ -152,7 +168,11 @@ with gr.Blocks() as demo:
|
|
| 152 |
df_tall.select(
|
| 153 |
fn=increment_select_counter,
|
| 154 |
inputs=[select_events],
|
| 155 |
-
outputs=[
|
|
|
|
|
|
|
|
|
|
|
|
|
| 156 |
)
|
| 157 |
|
| 158 |
if __name__ == "__main__":
|
|
|
|
| 2 |
import pandas as pd
|
| 3 |
import numpy as np
|
| 4 |
|
| 5 |
+
|
| 6 |
def update_dataframe():
|
| 7 |
+
regular_df = pd.DataFrame(
|
| 8 |
+
np.random.randint(1, 10, size=(5, 5)),
|
| 9 |
+
columns=pd.Index([str(i) for i in range(5)]),
|
| 10 |
+
)
|
| 11 |
+
wide_df = pd.DataFrame(
|
| 12 |
+
[
|
| 13 |
+
[5, 22, 91, 17, 73, 38, 84, 46, 65, 10, 155, 122, 11, 144, 133],
|
| 14 |
+
[81, 42, 13, 97, 33, 77, 59, 100, 29, 61, 213, 195, 142, 118, 127],
|
| 15 |
+
[37, 71, 63, 102, 28, 94, 19, 55, 88, 44, 116, 139, 122, 150, 147],
|
| 16 |
+
[104, 52, 49, 26, 83, 67, 31, 92, 79, 18, 241, 115, 159, 123, 137],
|
| 17 |
+
[16, 95, 74, 68, 43, 101, 27, 85, 39, 57, 129, 148, 132, 111, 156],
|
| 18 |
+
],
|
| 19 |
+
columns=pd.Index([f"col_{i}" for i in range(15)]),
|
| 20 |
+
)
|
| 21 |
return regular_df, wide_df
|
| 22 |
|
| 23 |
+
|
| 24 |
def clear_dataframes():
|
| 25 |
regular_empty_df = pd.DataFrame([], columns=pd.Index([str(i) for i in range(5)]))
|
| 26 |
wide_empty_df = pd.DataFrame([], columns=pd.Index([f"col_{i}" for i in range(15)]))
|
| 27 |
return regular_empty_df, wide_empty_df
|
| 28 |
|
| 29 |
+
|
| 30 |
def increment_select_counter(evt: gr.SelectData, count):
|
| 31 |
count_val = 1 if count is None else count + 1
|
| 32 |
return count_val, evt.index, evt.value
|
| 33 |
|
| 34 |
+
|
| 35 |
def edit_dataframe(evt: gr.EditData, count):
|
| 36 |
+
event_data = ", ".join(
|
| 37 |
+
[
|
| 38 |
+
f"index: {evt.index}",
|
| 39 |
+
f"value: {evt.value}",
|
| 40 |
+
f"previous_value: {evt.previous_value}",
|
| 41 |
+
]
|
| 42 |
+
)
|
| 43 |
return event_data, count + 1
|
| 44 |
|
| 45 |
+
|
| 46 |
with gr.Blocks() as demo:
|
| 47 |
with gr.Row():
|
| 48 |
with gr.Column(scale=1):
|
| 49 |
+
initial_regular_df = pd.DataFrame(
|
| 50 |
+
np.zeros((5, 5), dtype=int),
|
| 51 |
+
columns=pd.Index([str(i) for i in range(5)]),
|
| 52 |
+
)
|
| 53 |
|
| 54 |
df = gr.Dataframe(
|
| 55 |
value=initial_regular_df,
|
|
|
|
| 58 |
show_label=True,
|
| 59 |
elem_id="dataframe",
|
| 60 |
show_search="filter",
|
| 61 |
+
buttons=["copy"],
|
| 62 |
show_row_numbers=True,
|
| 63 |
+
static_columns=[4],
|
| 64 |
)
|
| 65 |
|
| 66 |
with gr.Column(scale=1):
|
| 67 |
+
initial_wide_df = pd.DataFrame(
|
| 68 |
+
np.zeros((5, 15), dtype=int),
|
| 69 |
+
columns=pd.Index([f"col_{i}" for i in range(15)]),
|
| 70 |
+
)
|
| 71 |
|
| 72 |
df_view = gr.Dataframe(
|
| 73 |
value=initial_wide_df,
|
|
|
|
| 76 |
show_label=True,
|
| 77 |
show_search="search",
|
| 78 |
elem_id="non-interactive-dataframe",
|
| 79 |
+
buttons=["copy", "fullscreen"],
|
| 80 |
show_row_numbers=True,
|
|
|
|
| 81 |
)
|
| 82 |
|
| 83 |
tall_df_value = [
|
|
|
|
| 103 |
tall_df_value = {
|
| 104 |
"data": tall_df_value,
|
| 105 |
"headers": ["Model", "% Correct (LeetCode Hard)", "Is Open Source"],
|
| 106 |
+
"metadata": {"display_value": display_value},
|
|
|
|
|
|
|
| 107 |
}
|
| 108 |
|
| 109 |
with gr.Row():
|
|
|
|
| 116 |
max_height=200,
|
| 117 |
show_label=True,
|
| 118 |
elem_id="dataframe_tall",
|
| 119 |
+
buttons=["copy"],
|
| 120 |
show_row_numbers=True,
|
| 121 |
show_search="search",
|
| 122 |
)
|
| 123 |
|
| 124 |
df_tall_selected_cell_index = gr.Textbox(
|
| 125 |
+
label="Tall dataframe selected cell index",
|
| 126 |
+
elem_id="tall_selected_cell_index",
|
| 127 |
)
|
| 128 |
df_tall_selected_cell_value = gr.Textbox(
|
| 129 |
+
label="Tall dataframe selected cell value",
|
| 130 |
+
elem_id="tall_selected_cell_value",
|
| 131 |
)
|
| 132 |
|
| 133 |
with gr.Row():
|
|
|
|
| 152 |
selected_cell_value = gr.Textbox(
|
| 153 |
label="Selected cell value", elem_id="selected_cell_value"
|
| 154 |
)
|
| 155 |
+
edit_data = gr.Textbox(label="Edit event data", elem_id="edit_data")
|
|
|
|
|
|
|
| 156 |
|
| 157 |
update_btn.click(fn=update_dataframe, outputs=[df, df_view])
|
| 158 |
+
clear_btn.click(fn=clear_dataframes, outputs=[df, df_view])
|
| 159 |
df.change(fn=lambda x: x + 1, inputs=[change_events], outputs=[change_events])
|
| 160 |
df.edit(edit_dataframe, inputs=[edit_events], outputs=[edit_data, edit_events])
|
| 161 |
df.input(fn=lambda x: x + 1, inputs=[input_events], outputs=[input_events])
|
|
|
|
| 168 |
df_tall.select(
|
| 169 |
fn=increment_select_counter,
|
| 170 |
inputs=[select_events],
|
| 171 |
+
outputs=[
|
| 172 |
+
select_events,
|
| 173 |
+
df_tall_selected_cell_index,
|
| 174 |
+
df_tall_selected_cell_value,
|
| 175 |
+
],
|
| 176 |
)
|
| 177 |
|
| 178 |
if __name__ == "__main__":
|