aboutsummaryrefslogtreecommitdiffstats
path: root/obfuscator
diff options
context:
space:
mode:
authorAlex Schofield <git@ajschof.me>2025-02-14 12:32:27 +0000
committerAlex Schofield <git@ajschof.me>2025-02-14 12:32:27 +0000
commit9bc5d21ae7376792c6a4813e1f1ef16bfb42ec37 (patch)
tree6d675fe3c0ae68f029eb45c6c6cd1e5ad1a90e44 /obfuscator
parent6ad17315d1d6a174b9ba7c597947e211ee87f40f (diff)
downloadgdpr-obfuscator-9bc5d21ae7376792c6a4813e1f1ef16bfb42ec37.tar.gz
gdpr-obfuscator-9bc5d21ae7376792c6a4813e1f1ef16bfb42ec37.zip
encapsulate csv reading logic into class & methods
Diffstat (limited to 'obfuscator')
-rw-r--r--obfuscator/csv_reader.py32
1 files changed, 24 insertions, 8 deletions
diff --git a/obfuscator/csv_reader.py b/obfuscator/csv_reader.py
index 4ae8a06..b365d45 100644
--- a/obfuscator/csv_reader.py
+++ b/obfuscator/csv_reader.py
@@ -1,5 +1,4 @@
import csv
-from io import StringIO
from typing import List, Dict
import logging
@@ -11,13 +10,30 @@ if not logger.handlers:
handler.setFormatter(formatter)
logger.addHandler(handler)
-def read_local(content: str) -> List[Dict[str, str]]:
- f = StringIO(content)
- reader = csv.DictReader(f)
- logger.info("Finished reading CSV!")
- return list(reader)
-def read_s3():
- pass
+class CSVReader:
+ def __init__(self, path: str):
+ self.path = path
+
+ def read_local(self) -> List[Dict[str, str]]:
+ logger.debug(f"Reading local CSV from: {self.path}")
+ data = []
+
+ try:
+ with open(self.path, mode="r", encoding="utf-8") as file:
+ reader = csv.DictReader(file)
+ for row in reader:
+ data.append(dict(row))
+ except FileNotFoundError:
+ logger.error(f"File not found: {self.path}")
+ except Exception as e:
+ logger.error(f"Error reading file: {e}")
+
+ logger.debug(f"Total rows read: {len(data)}")
+ return data
+
+ def read_s3(self) -> List[Dict[str, str]]:
+ return []
+
git.ajschof.me — hosted by ajschofield — powered by cgit