diff options
author | Doug Hellmann <doug.hellmann@dreamhost.com> | 2012-07-31 14:01:39 -0400 |
---|---|---|
committer | Doug Hellmann <doug.hellmann@dreamhost.com> | 2012-07-31 15:12:19 -0400 |
commit | 8896e385ebc963145677303bf8d6eb134dcf582c (patch) | |
tree | 1dce3d965f14f8b9dc27e5ba9b56e2b084014638 /clifftablib | |
parent | ce0aa4609c76e60ea580afcfee1f8103931b0fee (diff) | |
download | cliff-tablib-8896e385ebc963145677303bf8d6eb134dcf582c.tar.gz |
Start cliff-tablib repo
This repo is a fork of the original cliff repo, with
the cliff parts removed and the rest changed to just
package the tablib-based formatters.
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
Diffstat (limited to 'clifftablib')
-rw-r--r-- | clifftablib/__init__.py | 0 | ||||
-rw-r--r-- | clifftablib/formatters.py | 49 |
2 files changed, 49 insertions, 0 deletions
diff --git a/clifftablib/__init__.py b/clifftablib/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/clifftablib/__init__.py diff --git a/clifftablib/formatters.py b/clifftablib/formatters.py new file mode 100644 index 0000000..d7e5ca0 --- /dev/null +++ b/clifftablib/formatters.py @@ -0,0 +1,49 @@ +"""Output formatters using tablib. +""" + +from cliff.formatters.base import ListFormatter, SingleFormatter + +import tablib + + +class TablibFormatterBase(ListFormatter, SingleFormatter): + + def add_argument_group(self, parser): + return + + def emit_list(self, column_names, data, stdout, parsed_args): + dataset = tablib.Dataset(headers=column_names) + for row in data: + dataset.append(row) + stdout.write(self._format_dataset(dataset)) + stdout.write('\n') + return + + def emit_one(self, column_names, data, stdout, parsed_args): + dataset = tablib.Dataset(headers=('Field', 'Value')) + for name, value in zip(column_names, data): + dataset.append((name, value)) + stdout.write(self._format_dataset(dataset)) + stdout.write('\n') + return + + +class YamlFormatter(TablibFormatterBase): + """YAML output""" + + def _format_dataset(self, dataset): + return dataset.yaml + + +class HtmlFormatter(TablibFormatterBase): + """HTML output""" + + def _format_dataset(self, dataset): + return dataset.html + + +class JsonFormatter(TablibFormatterBase): + """JSON output""" + + def _format_dataset(self, dataset): + return dataset.json |