diff options
| author | Alex Schofield <git@ajschof.me> | 2025-02-14 12:32:27 +0000 |
|---|---|---|
| committer | Alex Schofield <git@ajschof.me> | 2025-02-14 12:32:27 +0000 |
| commit | 9bc5d21ae7376792c6a4813e1f1ef16bfb42ec37 (patch) | |
| tree | 6d675fe3c0ae68f029eb45c6c6cd1e5ad1a90e44 | |
| parent | 6ad17315d1d6a174b9ba7c597947e211ee87f40f (diff) | |
| download | gdpr-obfuscator-9bc5d21ae7376792c6a4813e1f1ef16bfb42ec37.tar.gz gdpr-obfuscator-9bc5d21ae7376792c6a4813e1f1ef16bfb42ec37.zip | |
encapsulate csv reading logic into class & methods
| -rw-r--r-- | obfuscator/csv_reader.py | 32 |
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 [] + |
