From ffe3097e58220d96c7a18b1b6062330551378b82 Mon Sep 17 00:00:00 2001 From: Patrick Totzke Date: Mon, 5 Dec 2011 22:51:10 +0000 Subject: [PATCH] use __unicode__ for string representation --- bindings/python/notmuch/filename.py | 3 +++ bindings/python/notmuch/globals.py | 11 +++++++---- bindings/python/notmuch/message.py | 14 ++++++++------ bindings/python/notmuch/tag.py | 5 ++++- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/bindings/python/notmuch/filename.py b/bindings/python/notmuch/filename.py index 6b332a92..a7cd7e63 100644 --- a/bindings/python/notmuch/filename.py +++ b/bindings/python/notmuch/filename.py @@ -99,6 +99,9 @@ class Filenames(object): self._files = None def __str__(self): + return unicode(self).encode('utf-8') + + def __unicode__(self): """Represent Filenames() as newline-separated list of full paths .. note:: As this iterates over the filenames, we will not be diff --git a/bindings/python/notmuch/globals.py b/bindings/python/notmuch/globals.py index f69c73d4..54a49b2d 100644 --- a/bindings/python/notmuch/globals.py +++ b/bindings/python/notmuch/globals.py @@ -48,11 +48,11 @@ class Status(Enum): @classmethod def status2str(self, status): - """Get a string representation of a notmuch_status_t value.""" + """Get a (unicode) string representation of a notmuch_status_t value.""" # define strings for custom error messages if status == STATUS.NOT_INITIALIZED: - return "Operation on uninitialized object impossible." - return str(Status._status2str(status)) + return u"Operation on uninitialized object impossible." + return unicode(Status._status2str(status)) STATUS = Status(['SUCCESS', 'OUT_OF_MEMORY', @@ -134,12 +134,15 @@ class NotmuchError(Exception): self.message = message def __str__(self): + return unicode(self).encode('utf-8') + + def __unicode__(self): if self.message is not None: return self.message elif self.status is not None: return STATUS.status2str(self.status) else: - return 'Unknown error' + return u'Unknown error' # List of Subclassed exceptions that correspond to STATUS values and are diff --git a/bindings/python/notmuch/message.py b/bindings/python/notmuch/message.py index 6ee5ec95..a9ded801 100644 --- a/bindings/python/notmuch/message.py +++ b/bindings/python/notmuch/message.py @@ -796,12 +796,14 @@ class Message(object): return self.__str__() def __str__(self): - """A message() is represented by a 1-line summary""" - msg = {} - msg['from'] = self.get_header('from') - msg['tags'] = self.get_tags() - msg['date'] = date.fromtimestamp(self.get_date()) - return "%(from)s (%(date)s) (%(tags)s)" % (msg) + return unicode(self).encode('utf-8') + + def __unicode__(self): + format = "%(from)s (%(date)s) (%(tags)s)" + return format % (self.get_header('from'), + self.get_tags(), + date.fromtimestamp(self.get_date()), + ) def get_message_parts(self): """Output like notmuch show""" diff --git a/bindings/python/notmuch/tag.py b/bindings/python/notmuch/tag.py index a77b68d7..2fb7d328 100644 --- a/bindings/python/notmuch/tag.py +++ b/bindings/python/notmuch/tag.py @@ -111,7 +111,10 @@ class Tags(object): return self._valid(self._tags) > 0 def __str__(self): - """The str() representation of Tags() is a space separated list of tags + return unicode(self).encode('utf-8') + + def __unicode__(self): + """string representation of :class:`Tags`: a space separated list of tags .. note:: -- 2.43.0