Spaces:
Runtime error
Runtime error
Data caching for faster creation of the leaderboard
Browse files
server.py
CHANGED
@@ -162,6 +162,7 @@ class LeaderboardServer:
|
|
162 |
self.submission_ids = set()
|
163 |
self.submission_id_to_file = {} # Map submission ids to file paths
|
164 |
self.submission_id_to_model_title = {}
|
|
|
165 |
self.fetch_existing_models()
|
166 |
self.tournament_results = self.load_tournament_results()
|
167 |
|
@@ -216,6 +217,7 @@ class LeaderboardServer:
|
|
216 |
self.submission_ids.add(submission_id)
|
217 |
self.submission_id_to_file[submission_id] = submission_file
|
218 |
self.submission_id_to_model_title[submission_id] = metadata["team_name"] + "/" + metadata["model_name"]
|
|
|
219 |
|
220 |
@staticmethod
|
221 |
def _model_tournament_table_highlight_true_and_false(x):
|
@@ -237,11 +239,7 @@ class LeaderboardServer:
|
|
237 |
|
238 |
with self.var_lock.ro:
|
239 |
for competitor_id in self.tournament_results[submission_id].keys() - {submission_id}: # without self
|
240 |
-
|
241 |
-
if path:
|
242 |
-
data = json.load(open(path))
|
243 |
-
else:
|
244 |
-
raise gr.Error(f"Submission [{competitor_id}] not found")
|
245 |
|
246 |
match_results = {}
|
247 |
for task in self.tournament_results[submission_id][competitor_id]:
|
@@ -296,16 +294,13 @@ class LeaderboardServer:
|
|
296 |
else:
|
297 |
processed_results = []
|
298 |
for submission_id in tournament_results.keys():
|
299 |
-
|
300 |
-
if path is None:
|
301 |
if pre_submit and submission_id == pre_submit.submission_id:
|
302 |
data = json.load(open(pre_submit.file))
|
303 |
else:
|
304 |
raise gr.Error(f"Internal error: Submission [{submission_id}] not found")
|
305 |
-
elif path:
|
306 |
-
data = json.load(open(path))
|
307 |
else:
|
308 |
-
|
309 |
|
310 |
if submission_id != data["metadata"]["submission_id"]:
|
311 |
raise gr.Error(f"Proper submission [{submission_id}] not found")
|
@@ -556,9 +551,9 @@ class LeaderboardServer:
|
|
556 |
self.pre_submit = None
|
557 |
|
558 |
def get_model_detail(self, submission_id):
|
559 |
-
|
560 |
-
path = self.submission_id_to_file.get(submission_id)
|
561 |
-
if path is None:
|
562 |
raise gr.Error(f"Submission [{submission_id}] not found")
|
563 |
-
|
564 |
-
|
|
|
|
|
|
162 |
self.submission_ids = set()
|
163 |
self.submission_id_to_file = {} # Map submission ids to file paths
|
164 |
self.submission_id_to_model_title = {}
|
165 |
+
self.submission_id_to_data = {} # Only data (results and metadata) using by leaderboard
|
166 |
self.fetch_existing_models()
|
167 |
self.tournament_results = self.load_tournament_results()
|
168 |
|
|
|
217 |
self.submission_ids.add(submission_id)
|
218 |
self.submission_id_to_file[submission_id] = submission_file
|
219 |
self.submission_id_to_model_title[submission_id] = metadata["team_name"] + "/" + metadata["model_name"]
|
220 |
+
self.submission_id_to_data[submission_id] = {"results": data["results"], "metadata": metadata}
|
221 |
|
222 |
@staticmethod
|
223 |
def _model_tournament_table_highlight_true_and_false(x):
|
|
|
239 |
|
240 |
with self.var_lock.ro:
|
241 |
for competitor_id in self.tournament_results[submission_id].keys() - {submission_id}: # without self
|
242 |
+
data = self.submission_id_to_data[competitor_id]
|
|
|
|
|
|
|
|
|
243 |
|
244 |
match_results = {}
|
245 |
for task in self.tournament_results[submission_id][competitor_id]:
|
|
|
294 |
else:
|
295 |
processed_results = []
|
296 |
for submission_id in tournament_results.keys():
|
297 |
+
if submission_id not in self.submission_id_to_data:
|
|
|
298 |
if pre_submit and submission_id == pre_submit.submission_id:
|
299 |
data = json.load(open(pre_submit.file))
|
300 |
else:
|
301 |
raise gr.Error(f"Internal error: Submission [{submission_id}] not found")
|
|
|
|
|
302 |
else:
|
303 |
+
data = self.submission_id_to_data[submission_id]
|
304 |
|
305 |
if submission_id != data["metadata"]["submission_id"]:
|
306 |
raise gr.Error(f"Proper submission [{submission_id}] not found")
|
|
|
551 |
self.pre_submit = None
|
552 |
|
553 |
def get_model_detail(self, submission_id):
|
554 |
+
if submission_id not in self.submission_id_to_data:
|
|
|
|
|
555 |
raise gr.Error(f"Submission [{submission_id}] not found")
|
556 |
+
else:
|
557 |
+
with self.var_lock.ro:
|
558 |
+
data = self.submission_id_to_data[submission_id]
|
559 |
+
return data["metadata"]
|