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
|