From c77acdbef48b29f2c49f5ed3c837326312ea7cd7 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Fri, 30 Apr 2010 18:09:01 +0200 Subject: [PATCH] new getBacktrace() function --- weboob/tools/misc.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/weboob/tools/misc.py b/weboob/tools/misc.py index 38c7d853..7e549bdd 100644 --- a/weboob/tools/misc.py +++ b/weboob/tools/misc.py @@ -18,8 +18,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. """ +import sys +import traceback from dateutil import tz + +__all__ = ['toUnicode', 'local2utc', 'html2text', 'getBacktrace'] + + def toUnicode(text): r""" >>> toUnicode('ascii') @@ -52,3 +58,19 @@ try: except ImportError: def html2text(s): return s + +def getBacktrace(empty="Empty backtrace."): + """ + Try to get backtrace as string. + Returns "Error while trying to get backtrace" on failure. + """ + try: + info = sys.exc_info() + trace = traceback.format_exception(*info) + sys.exc_clear() + if trace[0] != "None\n": + return "".join(trace) + except: + # No i18n here (imagine if i18n function calls error...) + return "Error while trying to get backtrace" + return empty