@@ -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