diff --git a/CHANGELOG b/CHANGELOG index 67bcb19..5c67181 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -8,6 +8,7 @@ TBD * Add psql_unicode table format * Add minimal table format * Fix pip2 installing py3-only versions +* Add skip_headers argument to csv formatter Version 2.1.0 ------------- diff --git a/cli_helpers/tabular_output/delimited_output_adapter.py b/cli_helpers/tabular_output/delimited_output_adapter.py index b812456..fc13674 100644 --- a/cli_helpers/tabular_output/delimited_output_adapter.py +++ b/cli_helpers/tabular_output/delimited_output_adapter.py @@ -23,7 +23,7 @@ def write(self, d): self.line = d -def adapter(data, headers, table_format="csv", **kwargs): +def adapter(data, headers, table_format="csv", skip_header=False, **kwargs): """Wrap the formatting inside a function for TabularOutputFormatter.""" keys = ( "dialect", @@ -47,8 +47,10 @@ def adapter(data, headers, table_format="csv", **kwargs): l = linewriter() writer = csv.writer(l, **ckwargs) - writer.writerow(headers) - yield l.line + + if not kwargs.get("skip_header"): + writer.writerow(headers) + yield l.line for row in data: l.reset() diff --git a/tests/tabular_output/test_delimited_output_adapter.py b/tests/tabular_output/test_delimited_output_adapter.py index 86a622e..72490ec 100644 --- a/tests/tabular_output/test_delimited_output_adapter.py +++ b/tests/tabular_output/test_delimited_output_adapter.py @@ -22,6 +22,18 @@ def test_csv_wrapper(): "d","456"''' ) + # Test skip_headers argument + data = [["abc", "1"], ["d", "456"]] + headers = ["letters", "number"] + output = delimited_output_adapter.adapter( + iter(data), headers, dialect="unix", skip_headers=True + ) + assert "\n".join(output) == dedent( + '''\ + "abc","1"\n\ + "d","456"''' + ) + # Test tab-delimited output. data = [["abc", "1"], ["d", "456"]] headers = ["letters", "number"]