Spaces:
Sleeping
Sleeping
File size: 1,148 Bytes
fce23bc 81a17eb c77bc2f 81a17eb fce23bc | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import pandas as pd
import yfinance as yf
from datetime import datetime
from config import Config
def historical_return(company: yf.Ticker, history_years: int) -> float:
history = company.history(period=f"{history_years}y")
return (history["Close"].iloc[-1] - history["Close"].iloc[0]) / history["Close"].iloc[0]
def get_financial_info(ticker: str, metrics: list) -> dict:
try:
company = yf.Ticker(ticker)
current_price = company.info.get("currentPrice")
if not current_price:
return {metric: 'DELISTED' for metric in metrics}
except:
return {metric: 'DELISTED' for metric in metrics}
financial_info = {}
for metric in metrics:
if company.info.get(metric, None):
financial_info.update({metric: company.info.get(metric)})
continue
if Config.FINANCE_HISTORICAL_RETURN in metric:
financial_info.update({metric: historical_return(company, metric[-1])})
financial_info.update({Config.FINANCE_UPDATE_TIME: datetime.now().strftime("%d-%m-%Y")})
return financial_info # {price: 100, marketCap: 1000, update: 01-01-2021}
|