Skip to content

Commit

Permalink
Fixed issue ranaroussi#1305. Added test case to test for trailingPegI…
Browse files Browse the repository at this point in the history
…nfo statistic retrieval
  • Loading branch information
coskos-ops committed Dec 10, 2023
1 parent 5805029 commit 8fdf532
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 10 deletions.
12 changes: 12 additions & 0 deletions tests/ticker.py
Original file line number Diff line number Diff line change
Expand Up @@ -720,6 +720,18 @@ def test_info(self):
self.assertIn("symbol", data.keys(), f"Did not find expected key '{k}' in info dict")
self.assertEqual(self.symbols[0], data["symbol"], "Wrong symbol value in info dict")

def test_complementary_info(self):
# This test is to check that we can successfully retrieve the trailing PEG ratio

# We don't expect this one to have a trailing PEG ratio
data1 = self.tickers[0].info
self.assertEqual(data1['trailingPegRatio'], None)

# This one should have a trailing PEG ratio
data2 = self.tickers[2].info
self.assertEqual(data2['trailingPegRatio'], 1.2713)
pass

# def test_fast_info_matches_info(self):
# fast_info_keys = set()
# for ticker in self.tickers:
Expand Down
18 changes: 8 additions & 10 deletions yfinance/scrapers/quote.py
Original file line number Diff line number Diff line change
Expand Up @@ -700,14 +700,12 @@ def _fetch_complementary(self, proxy):

json_str = self._data.cache_get(url=url, proxy=proxy).text
json_data = json.loads(json_str)
try:
key_stats = json_data["timeseries"]["result"][0]
if k not in key_stats:
# Yahoo website prints N/A, indicates Yahoo lacks necessary data to calculate
v = None
if json_data["timeseries"]["error"] is not None:
raise YFinanceException(f"Failed to parse json response from Yahoo Finance: " + json_data["error"])
for k in keys:
keydict = json_data["timeseries"]["result"][0]
if k in keydict:
self._info[k] = keydict[k][-1]["reportedValue"]["raw"]
else:
# Select most recent (last) raw value in list:
v = key_stats[k][-1]["reportedValue"]["raw"]
except Exception:
v = None
self._info[k] = v
self.info[k] = None

0 comments on commit 8fdf532

Please sign in to comment.