From 23ab6c4724cded5dac64c164773b76794ec3b00e Mon Sep 17 00:00:00 2001 From: Alexander Artemenko Date: Sun, 16 Oct 2011 11:00:06 +0400 Subject: Render table in Markdown format on unicode(dataset). Closes #41. --- tablib/core.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'tablib') diff --git a/tablib/core.py b/tablib/core.py index 1bdd49f..80f4418 100644 --- a/tablib/core.py +++ b/tablib/core.py @@ -223,6 +223,23 @@ class Dataset(object): except AttributeError: return '' + def __unicode__(self): + result = [self.__headers] + + result.extend(map(unicode, row) for row in self._data) + + # here, we calculate max width for each column + lens = (map(len, row) for row in result) + field_lens = map(max, zip(*lens)) + + # delimiter between header and data + result.insert(1, [u'-' * length for length in field_lens]) + + format_string = u'|'.join(u'{%s:%s}' % item for item in enumerate(field_lens)) + + return u'\n'.join(format_string.format(*row) for row in result) + + # --------- # Internals -- cgit v1.2.1