Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
@@ -69,7 +69,10 @@ def n_weeks_before(date_string, n):
|
|
69 |
|
70 |
def get_stock_data(stock_symbol, steps):
|
71 |
|
72 |
-
|
|
|
|
|
|
|
73 |
|
74 |
# print(stock_data)
|
75 |
|
@@ -101,7 +104,10 @@ def get_news(symbol, data):
|
|
101 |
end_date = row['End Date'].strftime('%Y-%m-%d')
|
102 |
# print(symbol, ': ', start_date, ' - ', end_date)
|
103 |
time.sleep(1) # control qpm
|
104 |
-
|
|
|
|
|
|
|
105 |
weekly_news = [
|
106 |
{
|
107 |
"date": datetime.fromtimestamp(n['datetime']).strftime('%Y%m%d%H%M%S'),
|
@@ -118,9 +124,12 @@ def get_news(symbol, data):
|
|
118 |
|
119 |
|
120 |
def get_company_prompt(symbol):
|
121 |
-
|
122 |
-
profile = finnhub_client.company_profile2(symbol=symbol)
|
123 |
|
|
|
|
|
|
|
|
|
|
|
124 |
company_template = "[Company Introduction]:\n\n{name} is a leading entity in the {finnhubIndustry} sector. Incorporated and publicly traded since {ipo}, the company has established its reputation as one of the key players in the market. As of today, {name} has a market capitalization of {marketCapitalization:.2f} in {currency}, with {shareOutstanding:.2f} shares outstanding." \
|
125 |
"\n\n{name} operates primarily in the {country}, trading under the ticker {ticker} on the {exchange}. As a dominant force in the {finnhubIndustry} space, the company continues to innovate and drive progress within the industry."
|
126 |
|
@@ -159,8 +168,11 @@ def sample_news(news, k=5):
|
|
159 |
|
160 |
def get_current_basics(symbol, curday):
|
161 |
|
162 |
-
|
163 |
-
|
|
|
|
|
|
|
164 |
final_basics, basic_list, basic_dict = [], [], defaultdict(dict)
|
165 |
|
166 |
for metric, value_list in basic_financials['series']['quarterly'].items():
|
@@ -220,7 +232,11 @@ def get_all_prompts_online(symbol, data, curday, with_basics=True):
|
|
220 |
|
221 |
def construct_prompt(ticker, curday, n_weeks, use_basics):
|
222 |
|
223 |
-
|
|
|
|
|
|
|
|
|
224 |
data = get_stock_data(ticker, steps)
|
225 |
data = get_news(ticker, data)
|
226 |
data['Basics'] = [json.dumps({})] * len(data)
|
|
|
69 |
|
70 |
def get_stock_data(stock_symbol, steps):
|
71 |
|
72 |
+
try:
|
73 |
+
stock_data = yf.download(stock_symbol, steps[0], steps[-1])
|
74 |
+
except Exception:
|
75 |
+
raise gr.Error(f"Failed to download stock price data for symbol {stock_symbol} from yfinance!")
|
76 |
|
77 |
# print(stock_data)
|
78 |
|
|
|
104 |
end_date = row['End Date'].strftime('%Y-%m-%d')
|
105 |
# print(symbol, ': ', start_date, ' - ', end_date)
|
106 |
time.sleep(1) # control qpm
|
107 |
+
try:
|
108 |
+
weekly_news = finnhub_client.company_news(symbol, _from=start_date, to=end_date)
|
109 |
+
except Exception:
|
110 |
+
raise gr.Error(f"Failed to download company news for symbol {stock_symbol} from finnhub!")
|
111 |
weekly_news = [
|
112 |
{
|
113 |
"date": datetime.fromtimestamp(n['datetime']).strftime('%Y%m%d%H%M%S'),
|
|
|
124 |
|
125 |
|
126 |
def get_company_prompt(symbol):
|
|
|
|
|
127 |
|
128 |
+
try:
|
129 |
+
profile = finnhub_client.company_profile2(symbol=symbol)
|
130 |
+
except Exception:
|
131 |
+
raise gr.Error(f"Failed to download company profile for symbol {stock_symbol} from finnhub!")
|
132 |
+
|
133 |
company_template = "[Company Introduction]:\n\n{name} is a leading entity in the {finnhubIndustry} sector. Incorporated and publicly traded since {ipo}, the company has established its reputation as one of the key players in the market. As of today, {name} has a market capitalization of {marketCapitalization:.2f} in {currency}, with {shareOutstanding:.2f} shares outstanding." \
|
134 |
"\n\n{name} operates primarily in the {country}, trading under the ticker {ticker} on the {exchange}. As a dominant force in the {finnhubIndustry} space, the company continues to innovate and drive progress within the industry."
|
135 |
|
|
|
168 |
|
169 |
def get_current_basics(symbol, curday):
|
170 |
|
171 |
+
try:
|
172 |
+
basic_financials = finnhub_client.company_basic_financials(symbol, 'all')
|
173 |
+
except Exception:
|
174 |
+
raise gr.Error(f"Failed to download basic financials for symbol {stock_symbol} from finnhub!")
|
175 |
+
|
176 |
final_basics, basic_list, basic_dict = [], [], defaultdict(dict)
|
177 |
|
178 |
for metric, value_list in basic_financials['series']['quarterly'].items():
|
|
|
232 |
|
233 |
def construct_prompt(ticker, curday, n_weeks, use_basics):
|
234 |
|
235 |
+
try:
|
236 |
+
steps = [n_weeks_before(curday, n) for n in range(n_weeks + 1)][::-1]
|
237 |
+
except Exception:
|
238 |
+
raise gr.Error(f"Invalid date {curday}!")
|
239 |
+
|
240 |
data = get_stock_data(ticker, steps)
|
241 |
data = get_news(ticker, data)
|
242 |
data['Basics'] = [json.dumps({})] * len(data)
|