andrewrreed HF Staff commited on
Commit
22245ca
Β·
1 Parent(s): b7cc203

add ability to download data (with current filters applied)

Browse files
Files changed (1) hide show
  1. app.py +26 -3
app.py CHANGED
@@ -1,5 +1,6 @@
1
  import os
2
  import pickle
 
3
 
4
  import pandas as pd
5
  import gradio as gr
@@ -279,13 +280,13 @@ with gr.Blocks(
279
  min_score = gr.Slider(
280
  minimum=min_elo_score,
281
  maximum=max_elo_score,
282
- value=(max_elo_score - min_elo_score) * 0.3 + min_elo_score,
283
  step=50,
284
  label="Minimum ELO Score",
285
  info="Filter out low scoring models",
286
  )
287
  max_models_per_month = gr.Slider(
288
- value=upper_models_per_month - 2,
289
  minimum=1,
290
  maximum=upper_models_per_month,
291
  step=1,
@@ -314,8 +315,30 @@ with gr.Blocks(
314
  with gr.Tab("Plot"):
315
  plot = gr.Plot(show_label=False)
316
  with gr.Tab("Raw Data"):
317
-
318
  display_df = gr.DataFrame()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
319
 
320
  demo.load(
321
  fn=filter_df,
 
1
  import os
2
  import pickle
3
+ import tempfile
4
 
5
  import pandas as pd
6
  import gradio as gr
 
280
  min_score = gr.Slider(
281
  minimum=min_elo_score,
282
  maximum=max_elo_score,
283
+ value=min_elo_score,
284
  step=50,
285
  label="Minimum ELO Score",
286
  info="Filter out low scoring models",
287
  )
288
  max_models_per_month = gr.Slider(
289
+ value=3,
290
  minimum=1,
291
  maximum=upper_models_per_month,
292
  step=1,
 
315
  with gr.Tab("Plot"):
316
  plot = gr.Plot(show_label=False)
317
  with gr.Tab("Raw Data"):
 
318
  display_df = gr.DataFrame()
319
+ with gr.Row():
320
+ # Empty column to push download controls to the right
321
+ with gr.Column(scale=3):
322
+ gr.Markdown("")
323
+ # Download controls on the right
324
+ with gr.Column(scale=1):
325
+ download_button = gr.Button(
326
+ "πŸ“₯ Download Data", variant="secondary", size="sm"
327
+ )
328
+ csv_file = gr.File(label="Download CSV", visible=False)
329
+
330
+ def create_download(df):
331
+ with tempfile.NamedTemporaryFile(
332
+ mode="w", delete=False, suffix=".csv"
333
+ ) as temp_file:
334
+ df.to_csv(temp_file.name, index=False)
335
+ return temp_file.name, gr.update(visible=True)
336
+
337
+ download_button.click(
338
+ fn=create_download,
339
+ inputs=[display_df],
340
+ outputs=[csv_file, csv_file],
341
+ )
342
 
343
  demo.load(
344
  fn=filter_df,