Fhrozen commited on
Commit
fc07249
·
1 Parent(s): 73f1431

updates on tabs

Browse files
espnet_leaderboard/display/{task_tab.py → tabs.py} RENAMED
@@ -10,10 +10,10 @@ def create_leaderboard_tab(
10
  rows_per_page: int = 30
11
  ):
12
  """Create a leaderboard tab with pagination controls"""
13
-
14
  # State to track current page
15
  page_state = gr.State(value=1)
16
-
17
  with gr.Column():
18
  # Info section
19
  gr.Markdown(f"## {task_name} Leaderboard")
@@ -45,7 +45,7 @@ def create_leaderboard_tab(
45
  elem_classes="page-info"
46
  )
47
  next_btn = gr.Button("Next ➡️", elem_classes="pagination-btn")
48
-
49
  def update_display(task: str, page: int, rows: int):
50
  """Update the dataframe and page info"""
51
  paginated_df, current_page, total_pages = leaderboard_data.get_paginated_data(
@@ -53,13 +53,13 @@ def create_leaderboard_tab(
53
  )
54
  page_text = f"Page {current_page} of {total_pages} ({len(leaderboard_data.get_data(task))} total entries)"
55
  return paginated_df, page_text, current_page
56
-
57
  def go_to_prev_page(current_page: int, rows: int):
58
  """Go to previous page"""
59
  new_page = max(1, current_page - 1)
60
  df, page_text, page = update_display(task_name, new_page, rows)
61
  return df, page_text, page
62
-
63
  def go_to_next_page(current_page: int, rows: int):
64
  """Go to next page"""
65
  df_full = leaderboard_data.get_data(task_name)
@@ -67,41 +67,88 @@ def create_leaderboard_tab(
67
  new_page = min(total_pages, current_page + 1)
68
  df, page_text, page = update_display(task_name, new_page, rows)
69
  return df, page_text, page
70
-
71
  def refresh_data(rows: int):
72
  """Refresh data from source"""
73
  leaderboard_data.get_data(task_name, force_reload=True)
74
  df, page_text, page = update_display(task_name, 1, rows)
75
  return df, page_text, page
76
-
77
  def change_rows_per_page(rows: int):
78
  """Change number of rows per page"""
79
  df, page_text, page = update_display(task_name, 1, rows)
80
  return df, page_text, page
81
-
82
  # Wire up the event handlers
83
  prev_btn.click(
84
  fn=go_to_prev_page,
85
  inputs=[page_state, rows_dropdown],
86
  outputs=[dataframe, page_info, page_state]
87
  )
88
-
89
  next_btn.click(
90
  fn=go_to_next_page,
91
  inputs=[page_state, rows_dropdown],
92
  outputs=[dataframe, page_info, page_state]
93
  )
94
-
95
  refresh_btn.click(
96
  fn=refresh_data,
97
  inputs=[rows_dropdown],
98
  outputs=[dataframe, page_info, page_state]
99
  )
100
-
101
  rows_dropdown.change(
102
  fn=change_rows_per_page,
103
  inputs=[rows_dropdown],
104
  outputs=[dataframe, page_info, page_state]
105
  )
106
-
107
  return dataframe, page_info, page_state
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  rows_per_page: int = 30
11
  ):
12
  """Create a leaderboard tab with pagination controls"""
13
+
14
  # State to track current page
15
  page_state = gr.State(value=1)
16
+
17
  with gr.Column():
18
  # Info section
19
  gr.Markdown(f"## {task_name} Leaderboard")
 
45
  elem_classes="page-info"
46
  )
47
  next_btn = gr.Button("Next ➡️", elem_classes="pagination-btn")
48
+
49
  def update_display(task: str, page: int, rows: int):
50
  """Update the dataframe and page info"""
51
  paginated_df, current_page, total_pages = leaderboard_data.get_paginated_data(
 
53
  )
54
  page_text = f"Page {current_page} of {total_pages} ({len(leaderboard_data.get_data(task))} total entries)"
55
  return paginated_df, page_text, current_page
56
+
57
  def go_to_prev_page(current_page: int, rows: int):
58
  """Go to previous page"""
59
  new_page = max(1, current_page - 1)
60
  df, page_text, page = update_display(task_name, new_page, rows)
61
  return df, page_text, page
62
+
63
  def go_to_next_page(current_page: int, rows: int):
64
  """Go to next page"""
65
  df_full = leaderboard_data.get_data(task_name)
 
67
  new_page = min(total_pages, current_page + 1)
68
  df, page_text, page = update_display(task_name, new_page, rows)
69
  return df, page_text, page
70
+
71
  def refresh_data(rows: int):
72
  """Refresh data from source"""
73
  leaderboard_data.get_data(task_name, force_reload=True)
74
  df, page_text, page = update_display(task_name, 1, rows)
75
  return df, page_text, page
76
+
77
  def change_rows_per_page(rows: int):
78
  """Change number of rows per page"""
79
  df, page_text, page = update_display(task_name, 1, rows)
80
  return df, page_text, page
81
+
82
  # Wire up the event handlers
83
  prev_btn.click(
84
  fn=go_to_prev_page,
85
  inputs=[page_state, rows_dropdown],
86
  outputs=[dataframe, page_info, page_state]
87
  )
88
+
89
  next_btn.click(
90
  fn=go_to_next_page,
91
  inputs=[page_state, rows_dropdown],
92
  outputs=[dataframe, page_info, page_state]
93
  )
94
+
95
  refresh_btn.click(
96
  fn=refresh_data,
97
  inputs=[rows_dropdown],
98
  outputs=[dataframe, page_info, page_state]
99
  )
100
+
101
  rows_dropdown.change(
102
  fn=change_rows_per_page,
103
  inputs=[rows_dropdown],
104
  outputs=[dataframe, page_info, page_state]
105
  )
106
+
107
  return dataframe, page_info, page_state
108
+
109
+
110
+ def create_submit_tab():
111
+ gr.Markdown("## Request a model here!")
112
+ def submit_model(model_text):
113
+ if (model_text is None) or len(model_text) < 1:
114
+ raise gr.Error("Please enter a model name.")
115
+ splits = model_text.split("/")
116
+ if len(splits) != 2:
117
+ raise gr.Error("Incorrect request format. Expected format: 'user_name/model_name'")
118
+ if len(splits[0]) < 1 or len(splits[1]) < 1:
119
+ raise gr.Error("Incorrect request format. Both user name and model name are required.")
120
+ gr.Info(f"Submitted {model_text}")
121
+ return ""
122
+
123
+ with gr.Tabs():
124
+ with gr.Tab("From Huggingface Hub"):
125
+ with gr.Row():
126
+ with gr.Column(scale=1):
127
+ model_box = gr.Textbox(
128
+ label="Model name",
129
+ placeholder="Repository in format: ''user_name/model_name''",
130
+ scale=3,
131
+ max_lines=1,
132
+ )
133
+ with gr.Column(scale=1):
134
+ pass
135
+
136
+ with gr.Row():
137
+ with gr.Column(scale=1):
138
+ next_btn = gr.Button("Submit ✉️")
139
+ with gr.Column(scale=2):
140
+ pass
141
+
142
+ with gr.Tab("From Custom results"):
143
+ gr.Markdown("Submit your results in JSON format here: ")
144
+ gr.Markdown("The file needs to have the fields detailed [here](https://github.com/espnet/espnet).")
145
+ custom_model_box = gr.UploadButton(
146
+ label="Search Models",
147
+ )
148
+
149
+ next_btn.click(
150
+ fn=submit_model,
151
+ inputs=[model_box],
152
+ outputs=[model_box]
153
+ )
154
+ return