From 8ed41786028c82327333393aa8f0be5b48ba1649 2012-08-28 07:38:56 From: Jörgen Stenarson Date: 2012-08-28 07:38:56 Subject: [PATCH] Cast exception.value to unicode. For instance Windows IO error messages are localized and may contain non-ascii chracters. --- diff --git a/IPython/core/ultratb.py b/IPython/core/ultratb.py index 2f49d18..881cab9 100644 --- a/IPython/core/ultratb.py +++ b/IPython/core/ultratb.py @@ -925,7 +925,7 @@ class VerboseTB(TBTools): etype_str,evalue_str = map(str,(etype,evalue)) # ... and format it exception = ['%s%s%s: %s' % (Colors.excName, etype_str, - ColorsNormal, evalue_str)] + ColorsNormal, py3compat.cast_unicode(evalue_str))] if (not py3compat.PY3) and type(evalue) is types.InstanceType: try: names = [w for w in dir(evalue) if isinstance(w, basestring)] @@ -937,7 +937,7 @@ class VerboseTB(TBTools): exception.append(_m % (Colors.excName,ColorsNormal)) etype_str,evalue_str = map(str,sys.exc_info()[:2]) exception.append('%s%s%s: %s' % (Colors.excName,etype_str, - ColorsNormal, evalue_str)) + ColorsNormal, py3compat.cast_unicode(evalue_str))) names = [] for name in names: value = text_repr(getattr(evalue, name))