Spaces:
Running
Running
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}",
|