Skip to content

Commit 594f8de

Browse files
committed
Fix propagating and correctly using raise_errors parameter in _lazy_load_price_history
1 parent 5812aa6 commit 594f8de

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

yfinance/base.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,16 +98,17 @@ def __init__(self, ticker, session=None, proxy=_SENTINEL_):
9898

9999
@utils.log_indent_decorator
100100
def history(self, *args, **kwargs) -> pd.DataFrame:
101-
return self._lazy_load_price_history().history(*args, **kwargs)
101+
raise_errors = kwargs.get('raise_errors', False)
102+
return self._lazy_load_price_history(raise_errors).history(*args, **kwargs)
102103

103104
# ------------------------
104105

105-
def _lazy_load_price_history(self):
106+
def _lazy_load_price_history(self, raise_errors=False):
106107
if self._price_history is None:
107-
self._price_history = PriceHistory(self._data, self.ticker, self._get_ticker_tz(timeout=10))
108+
self._price_history = PriceHistory(self._data, self.ticker, self._get_ticker_tz(timeout=10, raise_errors=raise_errors))
108109
return self._price_history
109110

110-
def _get_ticker_tz(self, timeout):
111+
def _get_ticker_tz(self, timeout, raise_errors=False):
111112
if self._tz is not None:
112113
return self._tz
113114
c = cache.get_tz_cache()
@@ -119,7 +120,7 @@ def _get_ticker_tz(self, timeout):
119120
tz = None
120121

121122
if tz is None:
122-
tz = self._fetch_ticker_tz(timeout)
123+
tz = self._fetch_ticker_tz(timeout, raise_errors)
123124
if tz is None:
124125
# _fetch_ticker_tz works in 99.999% of cases.
125126
# For rare fail get from info.
@@ -141,7 +142,7 @@ def _get_ticker_tz(self, timeout):
141142
return tz
142143

143144
@utils.log_indent_decorator
144-
def _fetch_ticker_tz(self, timeout):
145+
def _fetch_ticker_tz(self, timeout, raise_errors=False):
145146
# Query Yahoo for fast price data just to get returned timezone
146147
logger = utils.get_yf_logger()
147148

@@ -157,8 +158,11 @@ def _fetch_ticker_tz(self, timeout):
157158
# Must propagate this
158159
raise
159160
except Exception as e:
160-
logger.error(f"Failed to get ticker '{self.ticker}' reason: {e}")
161-
return None
161+
if raise_errors:
162+
raise e
163+
else:
164+
logger.error(f"Failed to get ticker '{self.ticker}' reason: {e}")
165+
return None
162166
else:
163167
error = data.get('chart', {}).get('error', None)
164168
if error:

0 commit comments

Comments
 (0)