aboutsummaryrefslogtreecommitdiffstats
path: root/gdpr_obfuscator/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'gdpr_obfuscator/utils.py')
-rw-r--r--gdpr_obfuscator/utils.py20
1 files changed, 20 insertions, 0 deletions
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")
git.ajschof.me — hosted by ajschofield — powered by cgit