Spaces:
Runtime error
Runtime error
fix link
Browse files
app.py
CHANGED
|
@@ -73,7 +73,7 @@ with gr.Blocks(css=css) as demo:
|
|
| 73 |
loading_codes_json = gr.JSON([], visible=False)
|
| 74 |
with gr.Row():
|
| 75 |
with gr.Column():
|
| 76 |
-
gr.Markdown("# π€ (WIP) Hugging Face Dataset Spreadsheets π\n\nEdit any dataset on Hugging Face (full list <a href='https://huggingface.co/datasets' target='_blank'>here</a>)", elem_classes="centered")
|
| 77 |
with gr.Group():
|
| 78 |
with gr.Tab("Select Dataset"):
|
| 79 |
with gr.Row():
|
|
@@ -155,7 +155,7 @@ with gr.Blocks(css=css) as demo:
|
|
| 155 |
page_html: f"Page {page}",
|
| 156 |
}
|
| 157 |
|
| 158 |
-
@dataset_dropdown.select(inputs=[session_state, dataset_dropdown], outputs=[session_state, loading_codes_json, subset_dropdown, split_dropdown, dataframe, prev_button, next_button, page_html])
|
| 159 |
def _show_subset_dropdown(session: str | None, dataset: str):
|
| 160 |
subsets, loading_codes = show_subset_dropdown(dataset)
|
| 161 |
splits = show_split_dropdown(subsets["value"], loading_codes)
|
|
@@ -168,12 +168,17 @@ with gr.Blocks(css=css) as demo:
|
|
| 168 |
split_dropdown: gr.Dropdown(**splits),
|
| 169 |
session_state: session,
|
| 170 |
dataframe: gr.DataFrame(**input_dataframe),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 171 |
prev_button: gr.Button(interactive=False),
|
| 172 |
next_button: gr.Button(elem_classes="", interactive=True) if len(input_dataframe["value"]) >= PAGE_SIZE else gr.Button(interactive=False),
|
| 173 |
page_html: f"Page {page}",
|
| 174 |
}
|
| 175 |
|
| 176 |
-
@subset_dropdown.select(inputs=[dataset_dropdown, subset_dropdown, loading_codes_json], outputs=[session_state, split_dropdown, dataframe, prev_button, next_button, page_html])
|
| 177 |
def _show_split_dropdown(dataset: str, subset: str, loading_codes: list[dict]):
|
| 178 |
splits = show_split_dropdown(subset, loading_codes)
|
| 179 |
session = f"{dataset.replace('/', '--')}--{subset}--{splits['value']}--{uuid4()}"
|
|
@@ -183,12 +188,17 @@ with gr.Blocks(css=css) as demo:
|
|
| 183 |
split_dropdown: gr.Dropdown(**splits),
|
| 184 |
session_state: session,
|
| 185 |
dataframe: gr.DataFrame(**input_dataframe),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 186 |
prev_button: gr.Button(interactive=False),
|
| 187 |
next_button: gr.Button(elem_classes="", interactive=True) if len(input_dataframe["value"]) >= PAGE_SIZE else gr.Button(interactive=False),
|
| 188 |
page_html: f"Page {page}",
|
| 189 |
}
|
| 190 |
|
| 191 |
-
@split_dropdown.select(inputs=[dataset_dropdown, subset_dropdown, split_dropdown, loading_codes_json], outputs=[session_state, dataframe, prev_button, next_button, page_html])
|
| 192 |
def _show_input_dataframe(dataset: str, subset: str, split: str, loading_codes: list[dict]) -> pd.DataFrame:
|
| 193 |
session = f"{dataset.replace('/', '--')}--{subset}--{split}--{uuid4()}"
|
| 194 |
page = 1
|
|
@@ -196,6 +206,11 @@ with gr.Blocks(css=css) as demo:
|
|
| 196 |
return {
|
| 197 |
session_state: session,
|
| 198 |
dataframe: gr.DataFrame(**input_dataframe),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 199 |
prev_button: gr.Button(interactive=False),
|
| 200 |
next_button: gr.Button(elem_classes="", interactive=True) if len(input_dataframe["value"]) >= PAGE_SIZE else gr.Button(interactive=False),
|
| 201 |
page_html: f"Page {page}",
|
|
|
|
| 73 |
loading_codes_json = gr.JSON([], visible=False)
|
| 74 |
with gr.Row():
|
| 75 |
with gr.Column():
|
| 76 |
+
gr.Markdown("# π€ (WIP) Hugging Face Dataset Spreadsheets π\n\nEdit any Parquet dataset on Hugging Face (full list <a href='https://huggingface.co/datasets' target='_blank'>here</a>)", elem_classes="centered")
|
| 77 |
with gr.Group():
|
| 78 |
with gr.Tab("Select Dataset"):
|
| 79 |
with gr.Row():
|
|
|
|
| 155 |
page_html: f"Page {page}",
|
| 156 |
}
|
| 157 |
|
| 158 |
+
@dataset_dropdown.select(inputs=[session_state, dataset_dropdown], outputs=[session_state, loading_codes_json, subset_dropdown, split_dropdown, dataframe, share_link_textbox, use_locally_markdown, prev_button, next_button, page_html])
|
| 159 |
def _show_subset_dropdown(session: str | None, dataset: str):
|
| 160 |
subsets, loading_codes = show_subset_dropdown(dataset)
|
| 161 |
splits = show_split_dropdown(subsets["value"], loading_codes)
|
|
|
|
| 168 |
split_dropdown: gr.Dropdown(**splits),
|
| 169 |
session_state: session,
|
| 170 |
dataframe: gr.DataFrame(**input_dataframe),
|
| 171 |
+
share_link_textbox: f"{APP_URL}?{SESSIONS_DIR}={session}",
|
| 172 |
+
use_locally_markdown: (
|
| 173 |
+
f"""In DuckDB:\n\n```sql\nATTACH '{HOST_URL}/gradio_api/file={SESSIONS_DIR}/{session}.duckdb AS db';\nUSE db;\nSELECT * FROM edited_dataset LIMIT 5;\n```\n\n"""
|
| 174 |
+
f"""In Python:\n\n```python\nimport duckdb\n\nduckdb.sql("ATTACH '{HOST_URL}/gradio_api/file={SESSIONS_DIR}/{session}.duckdb' AS db")\nduckdb.sql("USE db")\ndf = duckdb.sql("SELECT * FROM edited_dataset LIMIT 5").df()\n```"""
|
| 175 |
+
),
|
| 176 |
prev_button: gr.Button(interactive=False),
|
| 177 |
next_button: gr.Button(elem_classes="", interactive=True) if len(input_dataframe["value"]) >= PAGE_SIZE else gr.Button(interactive=False),
|
| 178 |
page_html: f"Page {page}",
|
| 179 |
}
|
| 180 |
|
| 181 |
+
@subset_dropdown.select(inputs=[dataset_dropdown, subset_dropdown, loading_codes_json], outputs=[session_state, split_dropdown, dataframe, share_link_textbox, use_locally_markdown, prev_button, next_button, page_html])
|
| 182 |
def _show_split_dropdown(dataset: str, subset: str, loading_codes: list[dict]):
|
| 183 |
splits = show_split_dropdown(subset, loading_codes)
|
| 184 |
session = f"{dataset.replace('/', '--')}--{subset}--{splits['value']}--{uuid4()}"
|
|
|
|
| 188 |
split_dropdown: gr.Dropdown(**splits),
|
| 189 |
session_state: session,
|
| 190 |
dataframe: gr.DataFrame(**input_dataframe),
|
| 191 |
+
share_link_textbox: f"{APP_URL}?{SESSIONS_DIR}={session}",
|
| 192 |
+
use_locally_markdown: (
|
| 193 |
+
f"""In DuckDB:\n\n```sql\nATTACH '{HOST_URL}/gradio_api/file={SESSIONS_DIR}/{session}.duckdb AS db';\nUSE db;\nSELECT * FROM edited_dataset LIMIT 5;\n```\n\n"""
|
| 194 |
+
f"""In Python:\n\n```python\nimport duckdb\n\nduckdb.sql("ATTACH '{HOST_URL}/gradio_api/file={SESSIONS_DIR}/{session}.duckdb' AS db")\nduckdb.sql("USE db")\ndf = duckdb.sql("SELECT * FROM edited_dataset LIMIT 5").df()\n```"""
|
| 195 |
+
),
|
| 196 |
prev_button: gr.Button(interactive=False),
|
| 197 |
next_button: gr.Button(elem_classes="", interactive=True) if len(input_dataframe["value"]) >= PAGE_SIZE else gr.Button(interactive=False),
|
| 198 |
page_html: f"Page {page}",
|
| 199 |
}
|
| 200 |
|
| 201 |
+
@split_dropdown.select(inputs=[dataset_dropdown, subset_dropdown, split_dropdown, loading_codes_json], outputs=[session_state, dataframe, share_link_textbox, use_locally_markdown, prev_button, next_button, page_html])
|
| 202 |
def _show_input_dataframe(dataset: str, subset: str, split: str, loading_codes: list[dict]) -> pd.DataFrame:
|
| 203 |
session = f"{dataset.replace('/', '--')}--{subset}--{split}--{uuid4()}"
|
| 204 |
page = 1
|
|
|
|
| 206 |
return {
|
| 207 |
session_state: session,
|
| 208 |
dataframe: gr.DataFrame(**input_dataframe),
|
| 209 |
+
share_link_textbox: f"{APP_URL}?{SESSIONS_DIR}={session}",
|
| 210 |
+
use_locally_markdown: (
|
| 211 |
+
f"""In DuckDB:\n\n```sql\nATTACH '{HOST_URL}/gradio_api/file={SESSIONS_DIR}/{session}.duckdb AS db';\nUSE db;\nSELECT * FROM edited_dataset LIMIT 5;\n```\n\n"""
|
| 212 |
+
f"""In Python:\n\n```python\nimport duckdb\n\nduckdb.sql("ATTACH '{HOST_URL}/gradio_api/file={SESSIONS_DIR}/{session}.duckdb' AS db")\nduckdb.sql("USE db")\ndf = duckdb.sql("SELECT * FROM edited_dataset LIMIT 5").df()\n```"""
|
| 213 |
+
),
|
| 214 |
prev_button: gr.Button(interactive=False),
|
| 215 |
next_button: gr.Button(elem_classes="", interactive=True) if len(input_dataframe["value"]) >= PAGE_SIZE else gr.Button(interactive=False),
|
| 216 |
page_html: f"Page {page}",
|