Skip to content

Commit

Permalink
Adds Analysis
Browse files Browse the repository at this point in the history
  • Loading branch information
AjitisAjit committed Nov 10, 2021
1 parent 15310a8 commit bb202aa
Showing 2 changed files with 38 additions and 0 deletions.
34 changes: 34 additions & 0 deletions yfinance/base.py
Original file line number Diff line number Diff line change
@@ -51,6 +51,7 @@ def __init__(self, ticker, session=None):

self._fundamentals = False
self._info = None
self._analysis = None
self._sustainability = None
self._recommendations = None
self._major_holders = None
@@ -482,6 +483,32 @@ def cleanup(data):
except Exception:
pass

# Analysis
data = utils.get_json(ticker_url + '/analysis', proxy, self.session)

if isinstance(data.get('earningsTrend'), dict):
try:
analysis = _pd.DataFrame(data['earningsTrend']['trend'])
analysis['endDate'] = _pd.to_datetime(analysis['endDate'])
analysis.set_index('period', inplace=True)
analysis.index = analysis.index.str.upper()
analysis.index.name = 'Period'
analysis.columns = utils.camel2title(analysis.columns)

dict_cols = []

for idx, row in analysis.iterrows():
for colname, colval in row.items():
if isinstance(colval, dict):
dict_cols.append(colname)
for k, v in colval.items():
new_colname = colname + ' ' + utils.camel2title([k])[0]
analysis.loc[idx, new_colname] = v

self._analysis = analysis[[c for c in analysis.columns if c not in dict_cols]]
except Exception:
pass

self._fundamentals = True

def get_recommendations(self, proxy=None, as_dict=False, *args, **kwargs):
@@ -544,6 +571,13 @@ def get_earnings(self, proxy=None, as_dict=False, freq="yearly"):
return dict_data
return data

def get_analysis(self, proxy=None, as_dict=False, *args, **kwargs):
self._get_fundamentals(proxy=proxy)
data = self._analysis
if as_dict:
return data.to_dict()
return data

def get_financials(self, proxy=None, as_dict=False, freq="yearly"):
self._get_fundamentals(proxy=proxy)
data = self._financials[freq]
4 changes: 4 additions & 0 deletions yfinance/ticker.py
Original file line number Diff line number Diff line change
@@ -203,3 +203,7 @@ def options(self):
@property
def news(self):
return self.get_news()

@property
def analysis(self):
return self.get_analysis()

0 comments on commit bb202aa

Please sign in to comment.