Update app.py
Browse files
app.py
CHANGED
@@ -12,12 +12,12 @@ from collections import Counter
|
|
12 |
|
13 |
st.set_page_config(page_title="HF Contributions", layout="wide", initial_sidebar_state="expanded")
|
14 |
|
15 |
-
# Set custom sidebar width
|
16 |
st.markdown("""
|
17 |
<style>
|
18 |
[data-testid="stSidebar"] {
|
19 |
-
min-width:
|
20 |
-
max-width:
|
21 |
}
|
22 |
</style>
|
23 |
""", unsafe_allow_html=True)
|
@@ -278,12 +278,10 @@ with st.spinner("Loading trending accounts..."):
|
|
278 |
with st.sidebar:
|
279 |
st.title("👤 Contributor")
|
280 |
|
281 |
-
# Create tabs for Spaces and Models rankings
|
282 |
-
tab1, tab2
|
283 |
"SPACES TOP 30",
|
284 |
-
"SPACES TOP 100"
|
285 |
-
"MODELS TOP 30",
|
286 |
-
"MODELS TOP 100"
|
287 |
])
|
288 |
|
289 |
with tab1:
|
@@ -302,8 +300,9 @@ with st.sidebar:
|
|
302 |
# Create the overall ranking dataframe
|
303 |
overall_data = []
|
304 |
for idx, username in enumerate(trending_accounts[:100]):
|
305 |
-
|
306 |
-
|
|
|
307 |
overall_data.append([username, spaces_position, models_position])
|
308 |
|
309 |
ranking_data_overall = pd.DataFrame(
|
@@ -363,46 +362,6 @@ with st.sidebar:
|
|
363 |
plt.tight_layout()
|
364 |
st.pyplot(fig)
|
365 |
|
366 |
-
with tab2:
|
367 |
-
# Show trending accounts list by Models
|
368 |
-
st.subheader("🧠 Top 100 by Models")
|
369 |
-
|
370 |
-
# Display the top 100 accounts list
|
371 |
-
st.markdown("### Models Contributors Ranking")
|
372 |
-
|
373 |
-
# Create a data frame for the table
|
374 |
-
if top_owners_models:
|
375 |
-
ranking_data_models = pd.DataFrame(top_owners_models[:100], columns=["Contributor", "Models Count"])
|
376 |
-
ranking_data_models.index = ranking_data_models.index + 1 # Start index from 1 for ranking
|
377 |
-
|
378 |
-
st.dataframe(
|
379 |
-
ranking_data_models,
|
380 |
-
column_config={
|
381 |
-
"Contributor": st.column_config.TextColumn("Contributor"),
|
382 |
-
"Models Count": st.column_config.NumberColumn("Models Count (based on top 500 models)", format="%d")
|
383 |
-
},
|
384 |
-
use_container_width=True,
|
385 |
-
hide_index=False
|
386 |
-
)
|
387 |
-
|
388 |
-
# Add stats expander with visualization
|
389 |
-
with st.expander("View Top 30 Models Contributors Chart"):
|
390 |
-
# Create a bar chart for top 30 contributors
|
391 |
-
if top_owners_models:
|
392 |
-
chart_data = pd.DataFrame(top_owners_models[:30], columns=["Owner", "Models Count"])
|
393 |
-
|
394 |
-
fig, ax = plt.subplots(figsize=(10, 8))
|
395 |
-
bars = ax.barh(chart_data["Owner"], chart_data["Models Count"])
|
396 |
-
|
397 |
-
# Add color gradient to bars
|
398 |
-
for i, bar in enumerate(bars):
|
399 |
-
bar.set_color(plt.cm.plasma(i/len(bars))) # Use a different colormap for models
|
400 |
-
|
401 |
-
ax.set_title("Top 30 Contributors by Number of Models")
|
402 |
-
ax.set_xlabel("Number of Models")
|
403 |
-
plt.tight_layout()
|
404 |
-
st.pyplot(fig)
|
405 |
-
|
406 |
# Display trending accounts selection dropdown
|
407 |
st.subheader("Select Contributor")
|
408 |
selected_trending = st.selectbox(
|
@@ -414,7 +373,7 @@ with st.sidebar:
|
|
414 |
|
415 |
# Custom account input option
|
416 |
st.markdown("<div style='text-align: center; margin: 10px 0;'>OR</div>", unsafe_allow_html=True)
|
417 |
-
custom = st.text_input("
|
418 |
|
419 |
# Set username based on selection or custom input
|
420 |
if custom.strip():
|
|
|
12 |
|
13 |
st.set_page_config(page_title="HF Contributions", layout="wide", initial_sidebar_state="expanded")
|
14 |
|
15 |
+
# Set custom sidebar width - UPDATED to 40% of the screen
|
16 |
st.markdown("""
|
17 |
<style>
|
18 |
[data-testid="stSidebar"] {
|
19 |
+
min-width: 40vw !important;
|
20 |
+
max-width: 40vw !important;
|
21 |
}
|
22 |
</style>
|
23 |
""", unsafe_allow_html=True)
|
|
|
278 |
with st.sidebar:
|
279 |
st.title("👤 Contributor")
|
280 |
|
281 |
+
# Create tabs for Spaces and Models rankings - ONLY SHOWING FIRST TWO TABS
|
282 |
+
tab1, tab2 = st.tabs([
|
283 |
"SPACES TOP 30",
|
284 |
+
"SPACES TOP 100"
|
|
|
|
|
285 |
])
|
286 |
|
287 |
with tab1:
|
|
|
300 |
# Create the overall ranking dataframe
|
301 |
overall_data = []
|
302 |
for idx, username in enumerate(trending_accounts[:100]):
|
303 |
+
# Use strings for all rankings to avoid type conversion issues
|
304 |
+
spaces_position = str(spaces_rank.get(username, "-"))
|
305 |
+
models_position = str(models_rank.get(username, "-"))
|
306 |
overall_data.append([username, spaces_position, models_position])
|
307 |
|
308 |
ranking_data_overall = pd.DataFrame(
|
|
|
362 |
plt.tight_layout()
|
363 |
st.pyplot(fig)
|
364 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
365 |
# Display trending accounts selection dropdown
|
366 |
st.subheader("Select Contributor")
|
367 |
selected_trending = st.selectbox(
|
|
|
373 |
|
374 |
# Custom account input option
|
375 |
st.markdown("<div style='text-align: center; margin: 10px 0;'>OR</div>", unsafe_allow_html=True)
|
376 |
+
custom = st.text_input("Enter username/org", label_visibility="collapsed")
|
377 |
|
378 |
# Set username based on selection or custom input
|
379 |
if custom.strip():
|