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 |
+
}
|