Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -2,24 +2,15 @@ import streamlit as st
|
|
| 2 |
import pandas as pd
|
| 3 |
from datetime import datetime
|
| 4 |
import os
|
| 5 |
-
from huggingface_hub import HfApi,
|
| 6 |
|
| 7 |
# Configuration for Hugging Face Repository
|
| 8 |
-
REPO_ID = "
|
| 9 |
-
|
| 10 |
-
history_dir = os.path.join(LOCAL_DIR, "history")
|
| 11 |
|
| 12 |
-
# Hugging Face
|
| 13 |
hf_token = st.secrets["HF_TOKEN"] # Store your token in Streamlit secrets
|
| 14 |
-
|
| 15 |
-
# Initialize the Hugging Face repository
|
| 16 |
-
repo = Repository(local_dir=LOCAL_DIR, clone_from=REPO_ID, use_auth_token=hf_token)
|
| 17 |
-
|
| 18 |
-
# Function to commit changes to the Hugging Face repository
|
| 19 |
-
def commit_changes(message="Updating history"):
|
| 20 |
-
repo.git_add(pattern="history/*")
|
| 21 |
-
repo.git_commit(message=message)
|
| 22 |
-
repo.git_push()
|
| 23 |
|
| 24 |
# Initialize session state for temporary and historical storage
|
| 25 |
if "users" not in st.session_state:
|
|
@@ -27,28 +18,30 @@ if "users" not in st.session_state:
|
|
| 27 |
if "current_selections" not in st.session_state:
|
| 28 |
st.session_state.current_selections = []
|
| 29 |
|
| 30 |
-
# Load history from
|
| 31 |
def load_history():
|
| 32 |
history = []
|
| 33 |
-
|
| 34 |
-
if
|
| 35 |
-
|
| 36 |
-
for
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
history.append({"Date": date, "Summary": summary_df})
|
| 42 |
return history
|
| 43 |
|
| 44 |
-
# Save current summary to a text file
|
| 45 |
def save_summary_to_file(summary_df):
|
| 46 |
timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
|
|
|
|
|
|
|
|
|
| 52 |
|
| 53 |
# Load history into session state
|
| 54 |
if "history" not in st.session_state:
|
|
|
|
| 2 |
import pandas as pd
|
| 3 |
from datetime import datetime
|
| 4 |
import os
|
| 5 |
+
from huggingface_hub import HfApi, upload_file, list_repo_files, hf_hub_download
|
| 6 |
|
| 7 |
# Configuration for Hugging Face Repository
|
| 8 |
+
REPO_ID = "https://huggingface.co/spaces/MarcosRodrigo/Breakfast-Poll" # Replace with your repository ID
|
| 9 |
+
HISTORY_DIR = "history" # Directory within the repository to store history
|
|
|
|
| 10 |
|
| 11 |
+
# Hugging Face API (requires a token with write access)
|
| 12 |
hf_token = st.secrets["HF_TOKEN"] # Store your token in Streamlit secrets
|
| 13 |
+
api = HfApi()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
|
| 15 |
# Initialize session state for temporary and historical storage
|
| 16 |
if "users" not in st.session_state:
|
|
|
|
| 18 |
if "current_selections" not in st.session_state:
|
| 19 |
st.session_state.current_selections = []
|
| 20 |
|
| 21 |
+
# Load history from the repository
|
| 22 |
def load_history():
|
| 23 |
history = []
|
| 24 |
+
files_in_repo = list_repo_files(REPO_ID, token=hf_token)
|
| 25 |
+
history_files = [f for f in files_in_repo if f.startswith(f"{HISTORY_DIR}/") and f.endswith(".txt")]
|
| 26 |
+
|
| 27 |
+
for file in history_files:
|
| 28 |
+
local_filepath = hf_hub_download(repo_id=REPO_ID, filename=file, token=hf_token)
|
| 29 |
+
summary_df = pd.read_csv(local_filepath)
|
| 30 |
+
date = file.split("/")[-1].split(".txt")[0]
|
| 31 |
+
history.append({"Date": date, "Summary": summary_df})
|
|
|
|
| 32 |
return history
|
| 33 |
|
| 34 |
+
# Save the current summary to a text file and upload to the repository
|
| 35 |
def save_summary_to_file(summary_df):
|
| 36 |
timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
|
| 37 |
+
filename = f"{HISTORY_DIR}/{timestamp}.txt"
|
| 38 |
+
|
| 39 |
+
# Save the DataFrame to a local CSV file
|
| 40 |
+
local_filepath = f"{timestamp}.txt"
|
| 41 |
+
summary_df.to_csv(local_filepath, index=False)
|
| 42 |
+
|
| 43 |
+
# Upload the file to the repository
|
| 44 |
+
upload_file(path_or_fileobj=local_filepath, path_in_repo=filename, repo_id=REPO_ID, token=hf_token)
|
| 45 |
|
| 46 |
# Load history into session state
|
| 47 |
if "history" not in st.session_state:
|