aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Schofield <git@ajschof.me>2025-02-18 23:27:30 +0000
committerAlex Schofield <git@ajschof.me>2025-02-18 23:27:30 +0000
commitfb2488ebb6c0b48ff1d24bcb14d4301dc7f006ea (patch)
treedccfd5b6760e107eff2664e78ba0402578ce0943
parenteb0d30d0235dbadd1d5c385a0a49d4cd8aea021e (diff)
downloadgdpr-obfuscator-fb2488ebb6c0b48ff1d24bcb14d4301dc7f006ea.tar.gz
gdpr-obfuscator-fb2488ebb6c0b48ff1d24bcb14d4301dc7f006ea.zip
add function to return byte-stream of obfuscated csv file
-rw-r--r--obfuscator/csv_writer.py26
1 files changed, 26 insertions, 0 deletions
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")
git.ajschof.me — hosted by ajschofield — powered by cgit