IgorSlinko commited on
Commit
364a0a3
Β·
1 Parent(s): 9fef59c

Refresh leaderboard data on app startup

Browse files
Files changed (2) hide show
  1. app.py +19 -7
  2. requirements.txt +1 -0
app.py CHANGED
@@ -957,13 +957,23 @@ def get_model_prices(model_name: str) -> dict | None:
957
  return None
958
 
959
 
960
- def load_or_download_leaderboard():
961
- if LEADERBOARD_CACHE.exists():
962
  with open(LEADERBOARD_CACHE) as f:
963
  return json.load(f)
964
 
965
- filename = download_leaderboard(output_dir=str(DATA_DIR))
966
- os.rename(filename, LEADERBOARD_CACHE)
 
 
 
 
 
 
 
 
 
 
967
  with open(LEADERBOARD_CACHE) as f:
968
  return json.load(f)
969
 
@@ -988,9 +998,9 @@ def get_bash_only_df():
988
  "name": r.get("name", ""),
989
  "% resolved": resolved_str,
990
  "date": r.get("date", ""),
991
- "cost": round(r.get("cost", 0), 2),
992
- "instance_cost": round(r.get("instance_cost", 0), 4),
993
- "instance_calls": r.get("instance_calls", 0),
994
  "folder": r.get("folder", ""),
995
  "os_model": "βœ…" if r.get("os_model") else "❌",
996
  })
@@ -3086,6 +3096,8 @@ def build_app():
3086
 
3087
 
3088
  if __name__ == "__main__":
 
 
3089
  app = build_app()
3090
  app.queue()
3091
  app.launch()
 
957
  return None
958
 
959
 
960
+ def load_or_download_leaderboard(force_refresh: bool = False):
961
+ if not force_refresh and LEADERBOARD_CACHE.exists():
962
  with open(LEADERBOARD_CACHE) as f:
963
  return json.load(f)
964
 
965
+ try:
966
+ filename = download_leaderboard(output_dir=str(DATA_DIR))
967
+ os.rename(filename, LEADERBOARD_CACHE)
968
+ logging.info("Successfully downloaded fresh leaderboard data")
969
+ except Exception as e:
970
+ logging.warning(f"Failed to download leaderboard: {e}")
971
+ if LEADERBOARD_CACHE.exists():
972
+ logging.info("Using cached leaderboard data")
973
+ with open(LEADERBOARD_CACHE) as f:
974
+ return json.load(f)
975
+ raise
976
+
977
  with open(LEADERBOARD_CACHE) as f:
978
  return json.load(f)
979
 
 
998
  "name": r.get("name", ""),
999
  "% resolved": resolved_str,
1000
  "date": r.get("date", ""),
1001
+ "cost": round(r.get("cost") or 0, 2),
1002
+ "instance_cost": round(r.get("instance_cost") or 0, 4),
1003
+ "instance_calls": r.get("instance_calls") or 0,
1004
  "folder": r.get("folder", ""),
1005
  "os_model": "βœ…" if r.get("os_model") else "❌",
1006
  })
 
3096
 
3097
 
3098
  if __name__ == "__main__":
3099
+ logging.info("Refreshing leaderboard data on startup...")
3100
+ load_or_download_leaderboard(force_refresh=True)
3101
  app = build_app()
3102
  app.queue()
3103
  app.launch()
requirements.txt CHANGED
@@ -7,3 +7,4 @@ tiktoken>=0.12.0
7
  awscli
8
 
9
 
 
 
7
  awscli
8
 
9
 
10
+