From 4a6642a2a1e2d15f71fff6b6a0b4bbb0296e2bdb Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Wed, 14 Dec 2011 14:04:35 +0100 Subject: py3k: Add and use a mixin class that implements __str__ Amended by Sebastian Spaeth to include the required sys import in globals.py. --- bindings/python/notmuch/globals.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'bindings/python/notmuch/globals.py') diff --git a/bindings/python/notmuch/globals.py b/bindings/python/notmuch/globals.py index 99e6a10..32ed9ae 100644 --- a/bindings/python/notmuch/globals.py +++ b/bindings/python/notmuch/globals.py @@ -16,7 +16,7 @@ along with notmuch. If not, see . Copyright 2010 Sebastian Spaeth ' """ - +import sys from ctypes import CDLL, c_char_p, c_int, Structure, POINTER #----------------------------------------------------------------------------- @@ -27,6 +27,16 @@ except: raise ImportError("Could not find shared 'notmuch' library.") +if sys.version_info[0] == 2: + class Python3StringMixIn(object): + def __str__(self): + return unicode(self).encode('utf-8') +else: + class Python3StringMixIn(object): + def __str__(self): + return self.__unicode__() + + class Enum(object): """Provides ENUMS as "code=Enum(['a','b','c'])" where code.a=0 etc...""" def __init__(self, names): @@ -89,7 +99,7 @@ argument to receive a human readable string""" STATUS.__name__ = 'STATUS' -class NotmuchError(Exception): +class NotmuchError(Exception, Python3StringMixIn): """Is initiated with a (notmuch.STATUS[, message=None]). It will not return an instance of the class NotmuchError, but a derived instance of a more specific Error Message, e.g. OutOfMemoryError. Each status @@ -133,9 +143,6 @@ class NotmuchError(Exception): self.status = status self.message = message - def __str__(self): - return unicode(self).encode('utf-8') - def __unicode__(self): if self.message is not None: return self.message -- cgit v1.2.3