Source code for jacinle.utils.exception

#! /usr/bin/env python3
# -*- coding: utf-8 -*-
# File   : exception.py
# Author : Jiayuan Mao
# Email  : maojiayuan@gmail.com
# Date   : 12/19/2018
#
# This file is part of Jacinle.
# Distributed under terms of the MIT license.

__all__ = ['format_exc']


[docs] def format_exc(ei): """Format an exception info tuple into a string. Useful in context managers.""" import io import traceback sio = io.StringIO() tb = ei[2] # See issues #9427, #1553375. Commented out for now. # if getattr(self, 'fullstack', False): # traceback.print_stack(tb.tb_frame.f_back, file=sio) traceback.print_exception(ei[0], ei[1], tb, None, sio) s = sio.getvalue() sio.close() if s[-1:] == "\n": s = s[:-1] return s