From fb2488ebb6c0b48ff1d24bcb14d4301dc7f006ea Mon Sep 17 00:00:00 2001 From: Alex Schofield Date: Tue, 18 Feb 2025 23:27:30 +0000 Subject: add function to return byte-stream of obfuscated csv file --- obfuscator/csv_writer.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 obfuscator/csv_writer.py diff --git a/obfuscator/csv_writer.py b/obfuscator/csv_writer.py new file mode 100644 index 0000000..f8cd27d --- /dev/null +++ b/obfuscator/csv_writer.py @@ -0,0 +1,26 @@ +import csv +import io +from typing import List, Dict +from obfuscator.logger import get_logger + +# Create the logger +logger = get_logger("CSVWriter") + + +def data_to_csv_bytes(data: List[Dict[str, str]]) -> bytes: + if not data: + logger.info("No valid data was provided to write") + return b"" + + output = io.StringIO() + + headers = list(data[0].keys()) + + writer = csv.DictWriter(output, fieldnames=headers) + writer.writeheader() + writer.writerows(data) + + csv_string = output.getvalue() + logger.debug(f"CSV data: {csv_string}") + + return csv_string.encode("utf-8") -- cgit v1.2.3