From ff3a5630fe5440f61fffc2b2732ba38fad2b67a7 Mon Sep 17 00:00:00 2001 From: Alex Schofield Date: Thu, 20 Feb 2025 19:11:22 +0000 Subject: move create_byte_stream() to utils.py --- gdpr_obfuscator/utils.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'gdpr_obfuscator/utils.py') diff --git a/gdpr_obfuscator/utils.py b/gdpr_obfuscator/utils.py index 740db90..2dffbc2 100644 --- a/gdpr_obfuscator/utils.py +++ b/gdpr_obfuscator/utils.py @@ -1,5 +1,8 @@ # Utility functions from .logger import get_logger +from typing import List, Dict +import csv +import io class Utilities: @@ -14,3 +17,20 @@ class Utilities: key = "/".join(parts) self.logger.debug(f"Key: {key}") return bucket, key + + def create_byte_stream(self, data: List[Dict[str, str]]) -> bytes: + if not data: + self.logger.error("Invalid or empty 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() + + return csv_string.encode("utf-8") -- cgit v1.2.3