Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -54,33 +54,59 @@ if not file_exists:
|
|
54 |
header.append(f'{market} Volume')
|
55 |
header.append('Timestamp') # Add timestamp to the end
|
56 |
writer.writerow(header)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
|
58 |
-
# Function to fetch data in a loop
|
59 |
def fetch_data():
|
|
|
60 |
global loop_running
|
61 |
while loop_running:
|
62 |
try:
|
63 |
all_data = []
|
64 |
for market in markets:
|
65 |
crypto_data = get_crypto_price_from_coinex(market)
|
66 |
-
all_data += crypto_data # Add price and volume
|
67 |
|
68 |
timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S') # Get the current timestamp
|
69 |
-
all_data.append(timestamp) #
|
70 |
|
71 |
-
# Append the data to the CSV file
|
72 |
-
|
|
|
73 |
writer = csv.writer(file)
|
74 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
|
76 |
-
#
|
77 |
-
|
78 |
|
79 |
-
#
|
80 |
-
time.sleep(1)
|
81 |
except Exception as e:
|
82 |
st.error(f"An error occurred: {e}")
|
83 |
-
loop_running = False # Stop
|
84 |
|
85 |
# Streamlit UI elements
|
86 |
st.title("Live Cryptocurrency Data with Start/Stop Loop")
|
|
|
54 |
header.append(f'{market} Volume')
|
55 |
header.append('Timestamp') # Add timestamp to the end
|
56 |
writer.writerow(header)
|
57 |
+
from huggingface_hub import HfApi
|
58 |
+
import os
|
59 |
+
|
60 |
+
HF_USERNAME = "abolfazle80" # Your Hugging Face username
|
61 |
+
REPO_NAME = "crypto_data" # Your dataset repo
|
62 |
+
|
63 |
+
api = HfApi()
|
64 |
+
|
65 |
+
def upload_to_huggingface():
|
66 |
+
"""Uploads the CSV file to Hugging Face, preserving all appended data."""
|
67 |
+
try:
|
68 |
+
api.upload_file(
|
69 |
+
path_or_fileobj="USDT.csv", # Upload the local CSV
|
70 |
+
path_in_repo="USDT.csv", # Save as USDT.csv in the repo
|
71 |
+
repo_id=f"{HF_USERNAME}/{REPO_NAME}",
|
72 |
+
repo_type="dataset",
|
73 |
+
)
|
74 |
+
print("CSV successfully uploaded to Hugging Face.")
|
75 |
+
except Exception as e:
|
76 |
+
print(f"Upload failed: {e}")
|
77 |
|
|
|
78 |
def fetch_data():
|
79 |
+
"""Fetches crypto data, appends to CSV, and uploads to Hugging Face."""
|
80 |
global loop_running
|
81 |
while loop_running:
|
82 |
try:
|
83 |
all_data = []
|
84 |
for market in markets:
|
85 |
crypto_data = get_crypto_price_from_coinex(market)
|
86 |
+
all_data += crypto_data # Add price and volume
|
87 |
|
88 |
timestamp = datetime.now().strftime('%Y-%m-%d %H:%M:%S') # Get the current timestamp
|
89 |
+
all_data.append(timestamp) # Append timestamp to the row
|
90 |
|
91 |
+
# Append the data to the CSV file (do not overwrite)
|
92 |
+
file_exists = os.path.isfile("USDT.csv") # Check if file exists
|
93 |
+
with open("USDT.csv", "a", newline='') as file:
|
94 |
writer = csv.writer(file)
|
95 |
+
if not file_exists:
|
96 |
+
# Write header if the file is newly created
|
97 |
+
header = [f"{m} Price" for m in markets] + [f"{m} Volume" for m in markets] + ["Timestamp"]
|
98 |
+
writer.writerow(header)
|
99 |
+
writer.writerow(all_data) # Append new row
|
100 |
+
|
101 |
+
print(f"{all_data} added to CSV")
|
102 |
|
103 |
+
# Upload the updated CSV to Hugging Face
|
104 |
+
upload_to_huggingface()
|
105 |
|
106 |
+
time.sleep(1) # Fetch new data every second
|
|
|
107 |
except Exception as e:
|
108 |
st.error(f"An error occurred: {e}")
|
109 |
+
loop_running = False # Stop loop if error occurs
|
110 |
|
111 |
# Streamlit UI elements
|
112 |
st.title("Live Cryptocurrency Data with Start/Stop Loop")
|