Update app.py
Browse files
app.py
CHANGED
|
@@ -2,12 +2,16 @@ import streamlit as st
|
|
| 2 |
from huggingface_hub import HfApi
|
| 3 |
import pandas as pd
|
| 4 |
import asyncio
|
| 5 |
-
import
|
| 6 |
-
from io import BytesIO
|
| 7 |
|
| 8 |
# Initialize the Hugging Face API
|
| 9 |
api = HfApi()
|
| 10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
# Default list of Hugging Face usernames - where all the magic begins! 🪄
|
| 12 |
default_users = {
|
| 13 |
"users": [
|
|
@@ -41,7 +45,7 @@ async def fetch_all_users(usernames):
|
|
| 41 |
tasks = [fetch_user_content(username) for username in usernames]
|
| 42 |
return await asyncio.gather(*tasks)
|
| 43 |
|
| 44 |
-
# Generate HTML content for a user and
|
| 45 |
def generate_html_page(username, models, datasets):
|
| 46 |
html_content = f"""
|
| 47 |
<html>
|
|
@@ -72,8 +76,18 @@ def generate_html_page(username, models, datasets):
|
|
| 72 |
</body>
|
| 73 |
</html>
|
| 74 |
"""
|
| 75 |
-
|
| 76 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 77 |
|
| 78 |
# Streamlit app setup - the nerve center of our operation! 🎛️
|
| 79 |
st.title("Hugging Face User Content Display - Let's Automate Some Fun! 🎉")
|
|
@@ -124,8 +138,8 @@ if st.button("Show User Content"):
|
|
| 124 |
st.markdown("No datasets found. Maybe they’re still baking in the oven? 🍪")
|
| 125 |
|
| 126 |
# Generate HTML page and provide download link - because who wouldn't want a custom webpage? 🌐
|
| 127 |
-
|
| 128 |
-
st.markdown(f"[📄 Download {username}'s HTML Page](
|
| 129 |
|
| 130 |
st.markdown("---")
|
| 131 |
else:
|
|
|
|
| 2 |
from huggingface_hub import HfApi
|
| 3 |
import pandas as pd
|
| 4 |
import asyncio
|
| 5 |
+
import os
|
|
|
|
| 6 |
|
| 7 |
# Initialize the Hugging Face API
|
| 8 |
api = HfApi()
|
| 9 |
|
| 10 |
+
# Directory to save the generated HTML files
|
| 11 |
+
HTML_DIR = "generated_html_pages"
|
| 12 |
+
if not os.path.exists(HTML_DIR):
|
| 13 |
+
os.makedirs(HTML_DIR)
|
| 14 |
+
|
| 15 |
# Default list of Hugging Face usernames - where all the magic begins! 🪄
|
| 16 |
default_users = {
|
| 17 |
"users": [
|
|
|
|
| 45 |
tasks = [fetch_user_content(username) for username in usernames]
|
| 46 |
return await asyncio.gather(*tasks)
|
| 47 |
|
| 48 |
+
# Generate HTML content for a user and save it to a file - because who doesn't love a good download link? 💾
|
| 49 |
def generate_html_page(username, models, datasets):
|
| 50 |
html_content = f"""
|
| 51 |
<html>
|
|
|
|
| 76 |
</body>
|
| 77 |
</html>
|
| 78 |
"""
|
| 79 |
+
|
| 80 |
+
# Save the HTML content to a file
|
| 81 |
+
html_file_path = os.path.join(HTML_DIR, f"{username}.html")
|
| 82 |
+
with open(html_file_path, "w") as html_file:
|
| 83 |
+
html_file.write(html_content)
|
| 84 |
+
|
| 85 |
+
return html_file_path
|
| 86 |
+
|
| 87 |
+
# Cache the HTML generation process using Streamlit's caching decorator - because no one likes to repeat themselves! 🔁
|
| 88 |
+
@st.cache_data(show_spinner=False)
|
| 89 |
+
def get_cached_html_page(username, models, datasets):
|
| 90 |
+
return generate_html_page(username, models, datasets)
|
| 91 |
|
| 92 |
# Streamlit app setup - the nerve center of our operation! 🎛️
|
| 93 |
st.title("Hugging Face User Content Display - Let's Automate Some Fun! 🎉")
|
|
|
|
| 138 |
st.markdown("No datasets found. Maybe they’re still baking in the oven? 🍪")
|
| 139 |
|
| 140 |
# Generate HTML page and provide download link - because who wouldn't want a custom webpage? 🌐
|
| 141 |
+
html_file_path = get_cached_html_page(username, result['models'], result['datasets'])
|
| 142 |
+
st.markdown(f"[📄 Download {username}'s HTML Page]({html_file_path})")
|
| 143 |
|
| 144 |
st.markdown("---")
|
| 145 |
else:
|