Better Unicode handling in errors.
authorRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Wed, 22 Aug 2012 09:20:16 +0000 (11:20 +0200)
committerRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Wed, 22 Aug 2012 09:20:16 +0000 (11:20 +0200)
librarian/__init__.py

index 8a69d00..616e351 100644 (file)
@@ -12,11 +12,16 @@ import shutil
 class UnicodeException(Exception):
     def __str__(self):
         """ Dirty workaround for Python Unicode handling problems. """
 class UnicodeException(Exception):
     def __str__(self):
         """ Dirty workaround for Python Unicode handling problems. """
-        return self.message
+        return unicode(self).encode('utf-8')
 
     def __unicode__(self):
         """ Dirty workaround for Python Unicode handling problems. """
 
     def __unicode__(self):
         """ Dirty workaround for Python Unicode handling problems. """
-        return self.message
+        args = self.args[0] if len(self.args) == 1 else self.args
+        try:
+            message = unicode(args)
+        except UnicodeDecodeError:
+            message = unicode(args, encoding='utf-8', errors='ignore')
+        return message
 
 class ParseError(UnicodeException):
     pass
 
 class ParseError(UnicodeException):
     pass