Skip to content

Commit

Permalink
Merge pull request #3078 from mroutis/py3-logger
Browse files Browse the repository at this point in the history
py3: use format_exc instead of print_exception
  • Loading branch information
efiop authored Jan 7, 2020
2 parents ee0a8fa + f942e26 commit e8b0e22
Showing 1 changed file with 5 additions and 15 deletions.
20 changes: 5 additions & 15 deletions dvc/logger.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
"""Manages logging configuration for dvc repo."""

import io
import traceback
import logging.config
import logging.handlers

Expand Down Expand Up @@ -101,34 +101,24 @@ def _description(self, message, exception):
return description.format(message=message, exception=exception)

def _walk_exc(self, exc_info):
import traceback

buffer = io.StringIO()

traceback.print_exception(*exc_info, file=buffer)

exc = exc_info[1]
tb = buffer.getvalue()

exc_list = [str(exc)]
tb_list = [tb]

# NOTE: parsing chained exceptions. See dvc/exceptions.py for more info
while hasattr(exc, "__cause__") and exc.__cause__:
exc_list.append(str(exc.__cause__))
if hasattr(exc, "cause_tb") and exc.cause_tb:
tb_list.insert(0, str(exc.cause_tb))
exc = exc.__cause__

return exc_list, tb_list
return exc_list

def _parse_exc(self, record):
tb_only = getattr(record, "tb_only", False)

if not record.exc_info:
return (None, "")

exc_list, tb_list = self._walk_exc(record.exc_info)
exc_list = self._walk_exc(record.exc_info)
tb = traceback.format_exception(*record.exc_info)

exception = None if tb_only else ": ".join(exc_list)

Expand All @@ -139,7 +129,7 @@ def _parse_exc(self, record):
red=colorama.Fore.RED,
nc=colorama.Fore.RESET,
line="-" * 60,
stack_trace="\n".join(tb_list),
stack_trace="".join(tb),
)
else:
stack_trace = ""
Expand Down

0 comments on commit e8b0e22

Please sign in to comment.