Spaces:
Sleeping
Sleeping
jarajpu
commited on
Commit
·
7254a2f
1
Parent(s):
8441509
Saving preds every 12 hours
Browse files
app.py
CHANGED
|
@@ -34,7 +34,7 @@ scheduler = CommitScheduler(
|
|
| 34 |
repo_type="dataset",
|
| 35 |
folder_path=PREDICTIONS_FOLDER, # Local folder where predictions are saved temporarily
|
| 36 |
path_in_repo="predictions", # Path in dataset repo where predictions will be saved
|
| 37 |
-
every=
|
| 38 |
)
|
| 39 |
|
| 40 |
# Initialize CommitScheduler
|
|
@@ -43,7 +43,7 @@ scheduler = CommitScheduler(
|
|
| 43 |
repo_type="dataset",
|
| 44 |
folder_path=USERS_FOLDER, # Local folder where users are saved temporarily
|
| 45 |
path_in_repo="leaders", # Path in dataset repo where predictions will be saved
|
| 46 |
-
every=
|
| 47 |
)
|
| 48 |
|
| 49 |
# Initialize CSV and JSON files if they don't exist
|
|
@@ -261,61 +261,61 @@ def display_predictions():
|
|
| 261 |
if 'prediction_id' in todays_predictions.columns:
|
| 262 |
todays_predictions = todays_predictions.drop(columns=['prediction_id', 'prediction_date'])
|
| 263 |
|
| 264 |
-
|
| 265 |
st.dataframe(todays_predictions, hide_index=True)
|
| 266 |
else:
|
| 267 |
st.write("No predictions for today's matches yet.")
|
| 268 |
|
| 269 |
|
| 270 |
-
def display_leaderboard():
|
| 271 |
-
if st.button("Show Leaderboard"):
|
| 272 |
-
try:
|
| 273 |
-
users = load_users(USERS_JSON)
|
| 274 |
-
# Convert the dataset to a pandas DataFrame
|
| 275 |
-
df_users = pd.DataFrame([{'User': key, 'Points': value} for key, value in users.items()])
|
| 276 |
-
|
| 277 |
-
# Sort DataFrame by points in descending order
|
| 278 |
-
leaderboard = df_users.sort_values(by='Points', ascending=False).reset_index(drop=True)
|
| 279 |
-
|
| 280 |
-
# Add a 'Rank' column starting from 1
|
| 281 |
-
leaderboard['Rank'] = leaderboard.index + 1
|
| 282 |
-
|
| 283 |
-
# Reorder DataFrame columns so 'Rank' is first
|
| 284 |
-
df_leaderboard = leaderboard[['Rank', 'User', 'Points']]
|
| 285 |
-
|
| 286 |
-
st.dataframe(df_leaderboard, hide_index=True)
|
| 287 |
-
except FileNotFoundError:
|
| 288 |
-
st.write("Leaderboard data not available.")
|
| 289 |
-
|
| 290 |
# def display_leaderboard():
|
| 291 |
# if st.button("Show Leaderboard"):
|
| 292 |
# try:
|
| 293 |
-
#
|
| 294 |
-
# dataset = load_dataset("Jay-Rajput/DIS_IPL_Dataset", "leaders", split='train')
|
| 295 |
# # Convert the dataset to a pandas DataFrame
|
| 296 |
-
# df_users = pd.DataFrame(
|
| 297 |
-
|
| 298 |
-
# # Transform the DataFrame to have 'user_name' and 'points' columns
|
| 299 |
-
# # Since your JSON structure is quite unique, this step may need adjustment based on how the DataFrame is loaded
|
| 300 |
-
# users_data = []
|
| 301 |
-
# for column in df_users.columns:
|
| 302 |
-
# points = df_users[column].iloc[0] # Assuming the first (and only) row contains the points for each user
|
| 303 |
-
# users_data.append({'user_name': column, 'points': points})
|
| 304 |
-
|
| 305 |
-
# df_leaderboard = pd.DataFrame(users_data)
|
| 306 |
-
|
| 307 |
# # Sort DataFrame by points in descending order
|
| 308 |
-
#
|
| 309 |
|
| 310 |
# # Add a 'Rank' column starting from 1
|
| 311 |
-
#
|
| 312 |
|
| 313 |
-
# #
|
| 314 |
-
# df_leaderboard =
|
| 315 |
|
| 316 |
# st.dataframe(df_leaderboard, hide_index=True)
|
| 317 |
-
# except
|
| 318 |
-
# st.write("
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 319 |
|
| 320 |
|
| 321 |
# Streamlit UI
|
|
|
|
| 34 |
repo_type="dataset",
|
| 35 |
folder_path=PREDICTIONS_FOLDER, # Local folder where predictions are saved temporarily
|
| 36 |
path_in_repo="predictions", # Path in dataset repo where predictions will be saved
|
| 37 |
+
every=720, # Push every 240 minutes (4 hours)
|
| 38 |
)
|
| 39 |
|
| 40 |
# Initialize CommitScheduler
|
|
|
|
| 43 |
repo_type="dataset",
|
| 44 |
folder_path=USERS_FOLDER, # Local folder where users are saved temporarily
|
| 45 |
path_in_repo="leaders", # Path in dataset repo where predictions will be saved
|
| 46 |
+
every=720, # Push every 240 minutes (4 hours)
|
| 47 |
)
|
| 48 |
|
| 49 |
# Initialize CSV and JSON files if they don't exist
|
|
|
|
| 261 |
if 'prediction_id' in todays_predictions.columns:
|
| 262 |
todays_predictions = todays_predictions.drop(columns=['prediction_id', 'prediction_date'])
|
| 263 |
|
|
|
|
| 264 |
st.dataframe(todays_predictions, hide_index=True)
|
| 265 |
else:
|
| 266 |
st.write("No predictions for today's matches yet.")
|
| 267 |
|
| 268 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 269 |
# def display_leaderboard():
|
| 270 |
# if st.button("Show Leaderboard"):
|
| 271 |
# try:
|
| 272 |
+
# users = load_users(USERS_JSON)
|
|
|
|
| 273 |
# # Convert the dataset to a pandas DataFrame
|
| 274 |
+
# df_users = pd.DataFrame([{'User': key, 'Points': value} for key, value in users.items()])
|
| 275 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 276 |
# # Sort DataFrame by points in descending order
|
| 277 |
+
# leaderboard = df_users.sort_values(by='Points', ascending=False).reset_index(drop=True)
|
| 278 |
|
| 279 |
# # Add a 'Rank' column starting from 1
|
| 280 |
+
# leaderboard['Rank'] = leaderboard.index + 1
|
| 281 |
|
| 282 |
+
# # Reorder DataFrame columns so 'Rank' is first
|
| 283 |
+
# df_leaderboard = leaderboard[['Rank', 'User', 'Points']]
|
| 284 |
|
| 285 |
# st.dataframe(df_leaderboard, hide_index=True)
|
| 286 |
+
# except FileNotFoundError:
|
| 287 |
+
# st.write("Leaderboard data not available.")
|
| 288 |
+
|
| 289 |
+
|
| 290 |
+
def display_leaderboard():
|
| 291 |
+
if st.button("Show Leaderboard"):
|
| 292 |
+
try:
|
| 293 |
+
# Load the 'leaders' configuration or split from your dataset
|
| 294 |
+
dataset = load_dataset("Jay-Rajput/DIS_IPL_Dataset", "leaders", split='train')
|
| 295 |
+
# Convert the dataset to a pandas DataFrame
|
| 296 |
+
df_users = pd.DataFrame(dataset)
|
| 297 |
+
|
| 298 |
+
# Transform the DataFrame to have 'user_name' and 'points' columns
|
| 299 |
+
# Since your JSON structure is quite unique, this step may need adjustment based on how the DataFrame is loaded
|
| 300 |
+
users_data = []
|
| 301 |
+
for column in df_users.columns:
|
| 302 |
+
points = df_users[column].iloc[0] # Assuming the first (and only) row contains the points for each user
|
| 303 |
+
users_data.append({'User': column, 'Points': points})
|
| 304 |
+
|
| 305 |
+
df_leaderboard = pd.DataFrame(users_data)
|
| 306 |
+
|
| 307 |
+
# Sort DataFrame by points in descending order
|
| 308 |
+
df_leaderboard = df_leaderboard.sort_values(by='Points', ascending=False)
|
| 309 |
+
|
| 310 |
+
# Add a 'Rank' column starting from 1
|
| 311 |
+
df_leaderboard['Rank'] = range(1, len(df_leaderboard) + 1)
|
| 312 |
+
|
| 313 |
+
# Select and order the columns for display
|
| 314 |
+
df_leaderboard = df_leaderboard[['Rank', 'User', 'Points']]
|
| 315 |
+
|
| 316 |
+
st.dataframe(df_leaderboard, hide_index=True)
|
| 317 |
+
except Exception as e:
|
| 318 |
+
st.write("Failed to load leaderboard data: ", str(e))
|
| 319 |
|
| 320 |
|
| 321 |
# Streamlit UI
|