diff options
| author | Alexander Artemenko <svetlyak.40wt@gmail.com> | 2011-10-16 11:00:06 +0400 |
|---|---|---|
| committer | Alexander Artemenko <svetlyak.40wt@gmail.com> | 2011-10-16 11:00:06 +0400 |
| commit | 23ab6c4724cded5dac64c164773b76794ec3b00e (patch) | |
| tree | 33fe47a9498b6601fb1d84ca6f103a6423f91077 /tablib | |
| parent | 32a09ccd6ac26a3cbf4d632871ef383787acbb80 (diff) | |
| download | tablib-23ab6c4724cded5dac64c164773b76794ec3b00e.tar.gz | |
Render table in Markdown format on unicode(dataset). Closes #41.
Diffstat (limited to 'tablib')
| -rw-r--r-- | tablib/core.py | 17 |
1 files changed, 17 insertions, 0 deletions
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 '<dataset object>' + 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 |
