Skip to content

Commit 46f55c8

Browse files
committed
Add debug logging to 'history()' ; Improve logger fmt
1 parent e377846 commit 46f55c8

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

yfinance/base.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,11 +196,16 @@ def history(self, period="1mo", interval="1d",
196196
#if the ticker is MUTUALFUND or ETF, then get capitalGains events
197197
params["events"] = "div,splits,capitalGains"
198198

199+
params_pretty = dict(params)
200+
tz = self._get_ticker_tz(proxy, timeout)
201+
for k in ["period1", "period2"]:
202+
if k in params_pretty:
203+
params_pretty[k] = str(_pd.Timestamp(params[k], unit='s').tz_localize("UTC").tz_convert(tz))
204+
logger.debug('%s: %s' % (self.ticker, "Yahoo GET parameters: " + str(params_pretty)))
205+
199206
# Getting data from json
200207
url = "{}/v8/finance/chart/{}".format(self._base_url, self.ticker)
201-
202208
data = None
203-
204209
get_fn = self._data.get
205210
if end is not None:
206211
end_dt = _pd.Timestamp(end, unit='s').tz_localize("UTC")
@@ -274,9 +279,11 @@ def history(self, period="1mo", interval="1d",
274279
else:
275280
logger.error('%s: %s' % (self.ticker, err_msg))
276281
return shared._DFS[self.ticker]
282+
logger.debug(f'{self.ticker}: yfinance received OHLC data: {quotes.index[0]} -> {quotes.index[-1]}')
277283

278284
# 2) fix weired bug with Yahoo! - returning 60m for 30m bars
279285
if interval.lower() == "30m":
286+
logger.debug(f'{self.ticker}: resampling 30m OHLC from 15m')
280287
quotes2 = quotes.resample('30T')
281288
quotes = _pd.DataFrame(index=quotes2.last().index, data={
282289
'Open': quotes2['Open'].first(),
@@ -307,6 +314,7 @@ def history(self, period="1mo", interval="1d",
307314
intraday = params["interval"][-1] in ("m", 'h')
308315
if not prepost and intraday and "tradingPeriods" in self._history_metadata:
309316
quotes = utils.fix_Yahoo_returning_prepost_unrequested(quotes, params["interval"], self._history_metadata)
317+
logger.debug(f'{self.ticker}: OHLC after cleaning: {quotes.index[0]} -> {quotes.index[-1]}')
310318

311319
# actions
312320
dividends, splits, capital_gains = utils.parse_actions(data["chart"]["result"][0])
@@ -368,11 +376,13 @@ def history(self, period="1mo", interval="1d",
368376
df.loc[df["Capital Gains"].isna(),"Capital Gains"] = 0
369377
else:
370378
df["Capital Gains"] = 0.0
379+
logger.debug(f'{self.ticker}: OHLC after combining events: {quotes.index[0]} -> {quotes.index[-1]}')
371380

372381
df = df[~df.index.duplicated(keep='first')] # must do before repair
373382

374383
if repair==True or repair=="silent":
375384
# Do this before auto/back adjust
385+
logger.debug(f'{self.ticker}: checking OHLC for repairs ...')
376386
df = self._fix_zeroes(df, interval, tz_exchange, prepost, silent=(repair=="silent"))
377387
df = self._fix_unit_mixups(df, interval, tz_exchange, prepost, silent=(repair=="silent"))
378388

@@ -413,6 +423,8 @@ def history(self, period="1mo", interval="1d",
413423
mask_nan_or_zero = (df.isna() | (df == 0)).all(axis=1)
414424
df = df.drop(mask_nan_or_zero.index[mask_nan_or_zero])
415425

426+
logger.debug(f'{self.ticker}: yfinance returning OHLC: {df.index[0]} -> {df.index[-1]}')
427+
416428
return df
417429

418430
# ------------------------

yfinance/utils.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,11 @@ def get_yf_logger():
7676
if yf_logger is None:
7777
yf_logger = logging.getLogger("yfinance")
7878
if yf_logger.handlers is None or len(yf_logger.handlers) == 0:
79-
# Only add basic stream handler is user not already added one
80-
yf_logger.addHandler(logging.StreamHandler())
79+
# Add stream handler if user not already added one
80+
h = logging.StreamHandler()
81+
formatter = logging.Formatter(fmt='%(levelname)s %(message)s')
82+
h.setFormatter(formatter)
83+
yf_logger.addHandler(h)
8184
return yf_logger
8285

8386

0 commit comments

Comments
 (0)