remove default spinner for function cache
Browse files- dashboard_utils/bubbles.py +24 -15
dashboard_utils/bubbles.py
CHANGED
|
@@ -13,9 +13,10 @@ from dashboard_utils.time_tracker import _log, simple_time_tracker
|
|
| 13 |
URL_QUICKSEARCH = "https://huggingface.co/api/quicksearch?"
|
| 14 |
WANDB_REPO = "learning-at-home/Worker_logs"
|
| 15 |
CACHE_TTL = 100
|
|
|
|
| 16 |
|
| 17 |
|
| 18 |
-
@st.cache(ttl=CACHE_TTL)
|
| 19 |
@simple_time_tracker(_log)
|
| 20 |
def get_new_bubble_data():
|
| 21 |
serialized_data_points, latest_timestamp = get_serialized_data_points()
|
|
@@ -30,7 +31,7 @@ def get_new_bubble_data():
|
|
| 30 |
return serialized_data, profiles
|
| 31 |
|
| 32 |
|
| 33 |
-
@st.cache(ttl=CACHE_TTL)
|
| 34 |
@simple_time_tracker(_log)
|
| 35 |
def get_profiles(usernames):
|
| 36 |
profiles = []
|
|
@@ -62,7 +63,7 @@ def get_profiles(usernames):
|
|
| 62 |
return profiles
|
| 63 |
|
| 64 |
|
| 65 |
-
@st.cache(ttl=CACHE_TTL)
|
| 66 |
@simple_time_tracker(_log)
|
| 67 |
def get_serialized_data_points():
|
| 68 |
|
|
@@ -110,7 +111,7 @@ def get_serialized_data_points():
|
|
| 110 |
return serialized_data_points, latest_timestamp
|
| 111 |
|
| 112 |
|
| 113 |
-
@st.cache(ttl=CACHE_TTL)
|
| 114 |
@simple_time_tracker(_log)
|
| 115 |
def get_serialized_data(serialized_data_points, latest_timestamp):
|
| 116 |
serialized_data_points_v2 = []
|
|
@@ -141,16 +142,14 @@ def get_serialized_data(serialized_data_points, latest_timestamp):
|
|
| 141 |
serialized_data = {"points": [serialized_data_points_v2], "maxVelocity": max_velocity}
|
| 142 |
return serialized_data
|
| 143 |
|
|
|
|
| 144 |
def get_leaderboard(serialized_data):
|
| 145 |
-
data_leaderboard = {
|
| 146 |
-
"user": [],
|
| 147 |
-
"runtime": []
|
| 148 |
-
}
|
| 149 |
|
| 150 |
for user_item in serialized_data["points"][0]:
|
| 151 |
data_leaderboard["user"].append(user_item["profileId"])
|
| 152 |
data_leaderboard["runtime"].append(user_item["runtime"])
|
| 153 |
-
|
| 154 |
df = pd.DataFrame(data_leaderboard)
|
| 155 |
df = df.sort_values("runtime", ascending=False)
|
| 156 |
df["runtime"] = df["runtime"].apply(lambda x: datetime.timedelta(seconds=x))
|
|
@@ -159,19 +158,29 @@ def get_leaderboard(serialized_data):
|
|
| 159 |
df.reset_index(drop=True, inplace=True)
|
| 160 |
df.rename(columns={"user": "User", "runtime": "Total time contributed"}, inplace=True)
|
| 161 |
df["Rank"] = df.index + 1
|
| 162 |
-
df = df.set_index(
|
| 163 |
return df
|
| 164 |
|
|
|
|
| 165 |
def get_global_metrics(serialized_data):
|
|
|
|
| 166 |
num_contributing_users = len(serialized_data["points"][0])
|
| 167 |
num_active_users = 0
|
| 168 |
total_runtime = 0
|
| 169 |
|
| 170 |
for user_item in serialized_data["points"][0]:
|
| 171 |
-
|
| 172 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 173 |
total_runtime += user_item["runtime"]
|
| 174 |
-
|
| 175 |
total_runtime = datetime.timedelta(seconds=total_runtime)
|
| 176 |
-
return {
|
| 177 |
-
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
URL_QUICKSEARCH = "https://huggingface.co/api/quicksearch?"
|
| 14 |
WANDB_REPO = "learning-at-home/Worker_logs"
|
| 15 |
CACHE_TTL = 100
|
| 16 |
+
MAX_DELTA_ACTIVE_RUN_SEC = 60 * 5
|
| 17 |
|
| 18 |
|
| 19 |
+
@st.cache(ttl=CACHE_TTL, show_spinner=False)
|
| 20 |
@simple_time_tracker(_log)
|
| 21 |
def get_new_bubble_data():
|
| 22 |
serialized_data_points, latest_timestamp = get_serialized_data_points()
|
|
|
|
| 31 |
return serialized_data, profiles
|
| 32 |
|
| 33 |
|
| 34 |
+
@st.cache(ttl=CACHE_TTL, show_spinner=False)
|
| 35 |
@simple_time_tracker(_log)
|
| 36 |
def get_profiles(usernames):
|
| 37 |
profiles = []
|
|
|
|
| 63 |
return profiles
|
| 64 |
|
| 65 |
|
| 66 |
+
@st.cache(ttl=CACHE_TTL, show_spinner=False)
|
| 67 |
@simple_time_tracker(_log)
|
| 68 |
def get_serialized_data_points():
|
| 69 |
|
|
|
|
| 111 |
return serialized_data_points, latest_timestamp
|
| 112 |
|
| 113 |
|
| 114 |
+
@st.cache(ttl=CACHE_TTL, show_spinner=False)
|
| 115 |
@simple_time_tracker(_log)
|
| 116 |
def get_serialized_data(serialized_data_points, latest_timestamp):
|
| 117 |
serialized_data_points_v2 = []
|
|
|
|
| 142 |
serialized_data = {"points": [serialized_data_points_v2], "maxVelocity": max_velocity}
|
| 143 |
return serialized_data
|
| 144 |
|
| 145 |
+
|
| 146 |
def get_leaderboard(serialized_data):
|
| 147 |
+
data_leaderboard = {"user": [], "runtime": []}
|
|
|
|
|
|
|
|
|
|
| 148 |
|
| 149 |
for user_item in serialized_data["points"][0]:
|
| 150 |
data_leaderboard["user"].append(user_item["profileId"])
|
| 151 |
data_leaderboard["runtime"].append(user_item["runtime"])
|
| 152 |
+
|
| 153 |
df = pd.DataFrame(data_leaderboard)
|
| 154 |
df = df.sort_values("runtime", ascending=False)
|
| 155 |
df["runtime"] = df["runtime"].apply(lambda x: datetime.timedelta(seconds=x))
|
|
|
|
| 158 |
df.reset_index(drop=True, inplace=True)
|
| 159 |
df.rename(columns={"user": "User", "runtime": "Total time contributed"}, inplace=True)
|
| 160 |
df["Rank"] = df.index + 1
|
| 161 |
+
df = df.set_index("Rank")
|
| 162 |
return df
|
| 163 |
|
| 164 |
+
|
| 165 |
def get_global_metrics(serialized_data):
|
| 166 |
+
current_time = datetime.datetime.utcnow()
|
| 167 |
num_contributing_users = len(serialized_data["points"][0])
|
| 168 |
num_active_users = 0
|
| 169 |
total_runtime = 0
|
| 170 |
|
| 171 |
for user_item in serialized_data["points"][0]:
|
| 172 |
+
for run in user_item["activeRuns"]:
|
| 173 |
+
date_run = datetime.datetime.fromisoformat(run["date"])
|
| 174 |
+
delta_time_sec = (current_time - date_run).total_seconds()
|
| 175 |
+
if delta_time_sec < MAX_DELTA_ACTIVE_RUN_SEC:
|
| 176 |
+
num_active_users += 1
|
| 177 |
+
break
|
| 178 |
+
|
| 179 |
total_runtime += user_item["runtime"]
|
| 180 |
+
|
| 181 |
total_runtime = datetime.timedelta(seconds=total_runtime)
|
| 182 |
+
return {
|
| 183 |
+
"num_contributing_users": num_contributing_users,
|
| 184 |
+
"num_active_users": num_active_users,
|
| 185 |
+
"total_runtime": total_runtime,
|
| 186 |
+
}
|