Download data/api_client.py from feliponi/stock: direct link, hf CLI and curl.
- Browser
- Download file 927 Bytes
-
https://huggingface.co/spaces/feliponi/stock/resolve/main/data/api_client.py
- Command line
-
hf download hf://spaces/feliponi/stock/data/api_client.py
-
curl -L -o api_client.py https://huggingface.co/spaces/feliponi/stock/resolve/main/data/api_client.py
927 Bytes
| # data/api_client.py | |
| import yfinance as yf | |
| from newsapi import NewsApiClient | |
| from datetime import datetime, timedelta | |
| class YahooFinanceClient: | |
| def download_data(ticker, start_str=None, end_str=None, period="6mo"): | |
| if period: | |
| return yf.download(ticker, period=period, progress=False) | |
| else: | |
| return yf.download(ticker, start=start_str, end=end_str, progress=False) | |
| def get_company_info(ticker): | |
| company = yf.Ticker(ticker) | |
| return company.info | |
| class NewsAPIClient: | |
| def __init__(self, api_key): | |
| self.client = NewsApiClient(api_key=api_key) | |
| def get_news(self, shortName, days_back=15): | |
| from_date = (datetime.now() - timedelta(days=days_back)).strftime('%Y-%m-%d') | |
| return self.client.get_everything(q=shortName, from_param=from_date, language='en', sort_by='relevancy', page_size=20)['articles'] | |