use __unicode__ for string representation

This commit is contained in:
Patrick Totzke 2011-12-05 22:51:10 +00:00 committed by Sebastian Spaeth
parent 2b01161191
commit ffe3097e58
4 changed files with 22 additions and 11 deletions

View file

@ -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

View file

@ -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

View file

@ -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"""

View file

@ -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::