data refresh
Browse files
app.py
CHANGED
@@ -59,6 +59,16 @@ def load_trending_models_data():
|
|
59 |
'is_supported_task', 'is_securely_scanned', 'collected_at', 'model_status'
|
60 |
])
|
61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
def get_status_emoji(value):
|
63 |
"""Convert boolean values to emoji indicators"""
|
64 |
if pd.isna(value):
|
@@ -182,9 +192,12 @@ def create_display_dataframe(df, selected_date):
|
|
182 |
|
183 |
return display_df
|
184 |
|
185 |
-
def update_dashboard(selected_date):
|
186 |
"""Update the dashboard based on user selections"""
|
187 |
-
|
|
|
|
|
|
|
188 |
display_df = create_display_dataframe(df, selected_date)
|
189 |
return display_df
|
190 |
|
@@ -202,6 +215,20 @@ def get_available_dates():
|
|
202 |
|
203 |
return valid_dates, valid_dates[-1], valid_dates[0] # all_dates, min_date, max_date
|
204 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
205 |
# Create the Gradio interface
|
206 |
def create_interface():
|
207 |
# Custom CSS for enhanced styling
|
@@ -277,7 +304,8 @@ def create_interface():
|
|
277 |
|
278 |
def refresh_data(selected_date_text):
|
279 |
"""Refresh data and update dashboard"""
|
280 |
-
|
|
|
281 |
|
282 |
selected_date = max_date
|
283 |
if selected_date_text:
|
@@ -287,7 +315,7 @@ def create_interface():
|
|
287 |
print(f"Date conversion error in refresh: {e}, value: {selected_date_text}")
|
288 |
selected_date = max_date
|
289 |
|
290 |
-
display_df = update_dashboard(selected_date)
|
291 |
return (
|
292 |
str(max_date) if max_date else "",
|
293 |
display_df
|
|
|
59 |
'is_supported_task', 'is_securely_scanned', 'collected_at', 'model_status'
|
60 |
])
|
61 |
|
62 |
+
def clear_data_cache():
|
63 |
+
"""Clear the cached dataset to force a reload"""
|
64 |
+
load_trending_models_data.cache_clear()
|
65 |
+
print("Dataset cache cleared!")
|
66 |
+
|
67 |
+
def load_trending_models_data_fresh():
|
68 |
+
"""Load fresh data by clearing cache first"""
|
69 |
+
clear_data_cache()
|
70 |
+
return load_trending_models_data()
|
71 |
+
|
72 |
def get_status_emoji(value):
|
73 |
"""Convert boolean values to emoji indicators"""
|
74 |
if pd.isna(value):
|
|
|
192 |
|
193 |
return display_df
|
194 |
|
195 |
+
def update_dashboard(selected_date, use_fresh_data=False):
|
196 |
"""Update the dashboard based on user selections"""
|
197 |
+
if use_fresh_data:
|
198 |
+
df = load_trending_models_data_fresh()
|
199 |
+
else:
|
200 |
+
df = load_trending_models_data()
|
201 |
display_df = create_display_dataframe(df, selected_date)
|
202 |
return display_df
|
203 |
|
|
|
215 |
|
216 |
return valid_dates, valid_dates[-1], valid_dates[0] # all_dates, min_date, max_date
|
217 |
|
218 |
+
def get_available_dates_fresh():
|
219 |
+
"""Get list of available dates from fresh dataset (clears cache first)"""
|
220 |
+
df = load_trending_models_data_fresh()
|
221 |
+
if df.empty or 'collected_at' not in df.columns:
|
222 |
+
return [], None, None
|
223 |
+
|
224 |
+
dates = df['collected_at'].dt.date.unique()
|
225 |
+
valid_dates = sorted([d for d in dates if pd.notna(d)], reverse=True)
|
226 |
+
|
227 |
+
if not valid_dates:
|
228 |
+
return [], None, None
|
229 |
+
|
230 |
+
return valid_dates, valid_dates[-1], valid_dates[0] # all_dates, min_date, max_date
|
231 |
+
|
232 |
# Create the Gradio interface
|
233 |
def create_interface():
|
234 |
# Custom CSS for enhanced styling
|
|
|
304 |
|
305 |
def refresh_data(selected_date_text):
|
306 |
"""Refresh data and update dashboard"""
|
307 |
+
print("Refreshing data - clearing cache and reloading dataset...")
|
308 |
+
available_dates, _, max_date = get_available_dates_fresh()
|
309 |
|
310 |
selected_date = max_date
|
311 |
if selected_date_text:
|
|
|
315 |
print(f"Date conversion error in refresh: {e}, value: {selected_date_text}")
|
316 |
selected_date = max_date
|
317 |
|
318 |
+
display_df = update_dashboard(selected_date, use_fresh_data=True)
|
319 |
return (
|
320 |
str(max_date) if max_date else "",
|
321 |
display_df
|