shaipeerms commited on
Commit
cc1bfb0
1 Parent(s): 725ce65

Disable Submit button

Browse files
Files changed (2) hide show
  1. app.py +40 -11
  2. server.py +4 -2
app.py CHANGED
@@ -17,6 +17,8 @@ lb_server = LeaderboardServer()
17
 
18
  LEADERBOARD_TYPES = ['NOTSOFAR-MC', 'NOTSOFAR-SC', 'DASR-Constrained-LM', 'DASR-Unconstrained-LM']
19
  MAX_SUBMISSIONS_PER_24H = os.environ['MAX_SUBMISSIONS_PER_24H']
 
 
20
 
21
 
22
  with (gr.Blocks(theme=gr.themes.Soft(text_size=text_md), css="footer {visibility: hidden}") as main):
@@ -27,28 +29,54 @@ with (gr.Blocks(theme=gr.themes.Soft(text_size=text_md), css="footer {visibility
27
  gr.Markdown(HEADER_MARKDOWN)
28
 
29
  with gr.Row():
 
30
  # Leaderboards Tab #
31
  ####################
32
- def populate_leaderboard(leaderboard_type):
33
- leaderboard_df = lb_server.get_leaderboard(submission_type=leaderboard_type)
 
34
  if leaderboard_df.empty:
35
  return pd.DataFrame(columns=['No submissions yet'])
36
  return leaderboard_df
37
 
38
- def create_leaderboard_tab(tab_name):
39
- with gr.Tab(tab_name) as leaderboard_tab:
40
- leaderboard_table = gr.DataFrame(populate_leaderboard(tab_name)) if idx == 0 \
41
  else gr.DataFrame(pd.DataFrame(columns=['No submissions yet']))
42
- leaderboard_tab.select(fn=populate_leaderboard, inputs=[gr.Text(tab_name, visible=False)],
 
43
  outputs=[leaderboard_table])
44
- leaderboard_table.change(fn=populate_leaderboard, inputs=[gr.Text(tab_name, visible=False)],
 
45
  outputs=[leaderboard_table])
 
 
 
 
 
 
46
 
47
  with gr.Tab('Leaderboards') as leaderboards_tab:
48
- gr.Markdown(LEADERBOARD_TAB_TITLE_MARKDOWN)
49
  with gr.Row():
50
- for idx, tab_name in enumerate(LEADERBOARD_TYPES):
51
- create_leaderboard_tab(tab_name)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
 
53
  # Submission Tab #
54
  ##################
@@ -78,7 +106,8 @@ with (gr.Blocks(theme=gr.themes.Soft(text_size=text_md), css="footer {visibility
78
  gr.Warning(str(err))
79
  return
80
 
81
- metadata = {'challenge_name': 'NOTSOFAR1',
 
82
  'team_name': team_name,
83
  'submission_type': submission_type,
84
  'description': description,
 
17
 
18
  LEADERBOARD_TYPES = ['NOTSOFAR-MC', 'NOTSOFAR-SC', 'DASR-Constrained-LM', 'DASR-Unconstrained-LM']
19
  MAX_SUBMISSIONS_PER_24H = os.environ['MAX_SUBMISSIONS_PER_24H']
20
+ DATASET_VERSIONS = ['Devset1', 'Devset2']
21
+ CHALLENGE_NAME = 'NOTSOFAR1'
22
 
23
 
24
  with (gr.Blocks(theme=gr.themes.Soft(text_size=text_md), css="footer {visibility: hidden}") as main):
 
29
  gr.Markdown(HEADER_MARKDOWN)
30
 
31
  with gr.Row():
32
+
33
  # Leaderboards Tab #
34
  ####################
35
+ def populate_leaderboard(leaderboard_type, dataset_version):
36
+ leaderboard_df = lb_server.get_leaderboard(
37
+ submission_type=leaderboard_type, dataset_version=dataset_version)
38
  if leaderboard_df.empty:
39
  return pd.DataFrame(columns=['No submissions yet'])
40
  return leaderboard_df
41
 
42
+ def create_leaderboard_tab(tab_name, idx, dataset_version):
43
+ with gr.Tab(id=tab_name, label=tab_name) as leaderboard_tab:
44
+ leaderboard_table = gr.DataFrame(populate_leaderboard(tab_name, dataset_version)) if idx == 0 \
45
  else gr.DataFrame(pd.DataFrame(columns=['No submissions yet']))
46
+ leaderboard_tab.select(fn=populate_leaderboard,
47
+ inputs=[gr.Text(tab_name, visible=False), dataset_version],
48
  outputs=[leaderboard_table])
49
+ leaderboard_table.change(fn=populate_leaderboard,
50
+ inputs=[gr.Text(tab_name, visible=False), dataset_version],
51
  outputs=[leaderboard_table])
52
+ return leaderboard_table
53
+
54
+ def on_dropdown_change(dataset_version):
55
+ first_tab_name = LEADERBOARD_TYPES[0]
56
+ print(f'Dataset version changed to {dataset_version}, updating leaderboard tab {first_tab_name}...')
57
+ return gr.Tabs(selected=first_tab_name), populate_leaderboard(first_tab_name, dataset_version_drop)
58
 
59
  with gr.Tab('Leaderboards') as leaderboards_tab:
 
60
  with gr.Row():
61
+ gr.Markdown(LEADERBOARD_TAB_TITLE_MARKDOWN)
62
+ with gr.Row():
63
+ with gr.Column():
64
+ dataset_version_drop = gr.Dropdown(choices=DATASET_VERSIONS, multiselect=False,
65
+ value=DATASET_VERSIONS[-1], label="Dataset", interactive=True)
66
+ with gr.Column():
67
+ gr.Markdown('') # Empty column for spacing
68
+ with gr.Column():
69
+ gr.Markdown('') # Empty column for spacing
70
+ with gr.Column():
71
+ gr.Markdown('') # Empty column for spacing
72
+ with gr.Row():
73
+ with gr.Tabs() as leaderboards_tabs:
74
+ leaderboard_tables_list = []
75
+ for leaderboard_idx, leaderboard_type in enumerate(LEADERBOARD_TYPES):
76
+ l_tab = create_leaderboard_tab(leaderboard_type, leaderboard_idx, dataset_version_drop)
77
+ leaderboard_tables_list.append(l_tab)
78
+
79
+ dataset_version_drop.select(fn=on_dropdown_change, inputs=[dataset_version_drop], outputs=[leaderboards_tabs, leaderboard_tables_list[0]])
80
 
81
  # Submission Tab #
82
  ##################
 
106
  gr.Warning(str(err))
107
  return
108
 
109
+ metadata = {'challenge_name': CHALLENGE_NAME,
110
+ "dataset_version": DATASET_VERSIONS[-1],
111
  'team_name': team_name,
112
  'submission_type': submission_type,
113
  'description': description,
server.py CHANGED
@@ -11,17 +11,19 @@ class LeaderboardServer:
11
  self._LOG = logging.getLogger('leaderboard_server')
12
  self._server_address = os.environ['LEADERBOARD_SERVER_ADDRESS']
13
 
14
- def get_leaderboard(self, submission_type: str) -> pd.DataFrame:
15
  """
16
  Gets the leaderboard of the given submission type
17
  Args:
18
  submission_type: the type of the submission to get the leaderboard of:
19
  'SC' / 'MC-specific' / 'MC-agnostic' / 'MC-agnostic-all'
 
20
  """
21
  self._LOG.info(f'Getting leaderboard for submission type: {submission_type}')
22
  endpoint = f'{self._server_address}/leaderboard'
23
  submission_type = submission_type.lower().replace('-', '_')
24
- response = requests.get(endpoint, params={'submission_type': submission_type})
 
25
  if response.status_code != 200:
26
  self._LOG.error(f'Error while fetching leaderboard, status code: {response.status_code}, '
27
  f'response: {response.text}, endpoint: {endpoint}')
 
11
  self._LOG = logging.getLogger('leaderboard_server')
12
  self._server_address = os.environ['LEADERBOARD_SERVER_ADDRESS']
13
 
14
+ def get_leaderboard(self, submission_type: str, dataset_version: str) -> pd.DataFrame:
15
  """
16
  Gets the leaderboard of the given submission type
17
  Args:
18
  submission_type: the type of the submission to get the leaderboard of:
19
  'SC' / 'MC-specific' / 'MC-agnostic' / 'MC-agnostic-all'
20
+ dataset_version: the version of the dataset to get the leaderboard of ('Devset1' / 'Devset2' / ...)
21
  """
22
  self._LOG.info(f'Getting leaderboard for submission type: {submission_type}')
23
  endpoint = f'{self._server_address}/leaderboard'
24
  submission_type = submission_type.lower().replace('-', '_')
25
+ response = requests.get(endpoint, params={'submission_type': submission_type,
26
+ 'dataset_version': dataset_version})
27
  if response.status_code != 200:
28
  self._LOG.error(f'Error while fetching leaderboard, status code: {response.status_code}, '
29
  f'response: {response.text}, endpoint: {endpoint}')