MohamedRashad commited on
Commit
995d9de
·
1 Parent(s): 81e335d

Refactor search_leaderboard to accept columns to show and filter results accordingly

Browse files
Files changed (1) hide show
  1. app.py +12 -7
app.py CHANGED
@@ -41,31 +41,36 @@ CITATION_BUTTON_TEXT = """
41
  """
42
 
43
  df = None
 
44
 
45
- def search_leaderboard(model_name):
46
  if len(model_name.strip()) == 0:
47
- return df
48
 
49
  threshold = 95 # You can adjust this value to make the search more or less strict
 
50
 
51
  def calculate_similarity(row):
52
  similarity = fuzz.partial_ratio(model_name.lower(), row["Model"].lower())
53
  return similarity if similarity >= threshold else 0
54
 
55
  # Add a new column for similarity scores
56
- df["similarity"] = df.apply(calculate_similarity, axis=1)
57
 
58
  # Filter and sort the dataframe
59
- filtered_df = df[df["similarity"] > 0].sort_values('similarity', ascending=False)
60
 
61
  # Remove the similarity column before returning
62
  filtered_df = filtered_df.drop('similarity', axis=1)
63
 
 
 
 
64
  return filtered_df
65
 
66
 
67
  def main():
68
- global df
69
  df = load_retrieval_results()
70
  df[["Model"]] = df[["Model"]].applymap(lambda x: f'<a href="https://huggingface.co/{x}" target="_blank">{x}</a>')
71
  df.drop(columns=["Revision", "Precision", "Task"], inplace=True)
@@ -103,11 +108,11 @@ def main():
103
  # Submit the search box and the leaderboard
104
  search_box_retrieval.input(
105
  search_leaderboard,
106
- inputs=[search_box_retrieval],
107
  outputs=retrieval_leaderboard
108
  )
109
  columns_to_show_input.select(
110
- lambda columns: gr.update(value=df[[col for col in df.columns if col in columns]]),
111
  inputs=columns_to_show_input,
112
  outputs=retrieval_leaderboard
113
  )
 
41
  """
42
 
43
  df = None
44
+ original_columns_order = None
45
 
46
+ def search_leaderboard(model_name, columns_to_show):
47
  if len(model_name.strip()) == 0:
48
+ return df.loc[:, columns_to_show]
49
 
50
  threshold = 95 # You can adjust this value to make the search more or less strict
51
+ filtered_df = df.copy()
52
 
53
  def calculate_similarity(row):
54
  similarity = fuzz.partial_ratio(model_name.lower(), row["Model"].lower())
55
  return similarity if similarity >= threshold else 0
56
 
57
  # Add a new column for similarity scores
58
+ filtered_df["similarity"] = filtered_df.apply(calculate_similarity, axis=1)
59
 
60
  # Filter and sort the dataframe
61
+ filtered_df = filtered_df[filtered_df["similarity"] > 0].sort_values('similarity', ascending=False)
62
 
63
  # Remove the similarity column before returning
64
  filtered_df = filtered_df.drop('similarity', axis=1)
65
 
66
+ # Filter the columns to show
67
+ filtered_df = filtered_df.loc[:, columns_to_show]
68
+
69
  return filtered_df
70
 
71
 
72
  def main():
73
+ global df, original_columns_order
74
  df = load_retrieval_results()
75
  df[["Model"]] = df[["Model"]].applymap(lambda x: f'<a href="https://huggingface.co/{x}" target="_blank">{x}</a>')
76
  df.drop(columns=["Revision", "Precision", "Task"], inplace=True)
 
108
  # Submit the search box and the leaderboard
109
  search_box_retrieval.input(
110
  search_leaderboard,
111
+ inputs=[search_box_retrieval, columns_to_show_input],
112
  outputs=retrieval_leaderboard
113
  )
114
  columns_to_show_input.select(
115
+ lambda columns: df.loc[:, columns],
116
  inputs=columns_to_show_input,
117
  outputs=retrieval_leaderboard
118
  )