diff options
| author | Alex <git@ajschof.me> | 2025-02-17 01:19:11 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-17 01:19:11 +0000 |
| commit | 73462d62d48cd3cf061697f9f6a390437ee29f2d (patch) | |
| tree | 4331016762f96c0861b46ac67343a0769f038fa6 /obfuscator | |
| parent | e6bedc5c9d391b761fec6529de8537a991125c26 (diff) | |
| parent | cf1376862fb2f58c2e837338ed9c765439ffa1b9 (diff) | |
| download | gdpr-obfuscator-73462d62d48cd3cf061697f9f6a390437ee29f2d.tar.gz gdpr-obfuscator-73462d62d48cd3cf061697f9f6a390437ee29f2d.zip | |
Merge pull request #1 from ajschofield/feat/csv-reader
merge csvreader into stable
Diffstat (limited to 'obfuscator')
| -rw-r--r-- | obfuscator/__init__.py | 0 | ||||
| -rw-r--r-- | obfuscator/csv_reader.py | 34 | ||||
| -rw-r--r-- | obfuscator/logger.py | 24 |
3 files changed, 58 insertions, 0 deletions
diff --git a/obfuscator/__init__.py b/obfuscator/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/obfuscator/__init__.py diff --git a/obfuscator/csv_reader.py b/obfuscator/csv_reader.py new file mode 100644 index 0000000..b9dccdb --- /dev/null +++ b/obfuscator/csv_reader.py @@ -0,0 +1,34 @@ +import csv +import io +from typing import List, Dict +from obfuscator.logger import get_logger + +logger = get_logger("CSVReader") + + +class CSVReader: + @staticmethod + def read_local(path) -> List[Dict[str, str]]: + logger.debug(f"Reading local CSV from: {path}") + + try: + with open(path, mode="r", encoding="utf-8") as f: + reader = csv.DictReader(f) + return [dict(row) for row in reader] + except FileNotFoundError: + logger.error(f"File not found: {path}") + except Exception as e: + logger.error(f"Error reading file: {e}") + + @staticmethod + def read_s3(path) -> List[Dict[str, str]]: + return [] + + @staticmethod + def read_string(content: str) -> List[Dict[str, str]]: + if not content.strip(): + return [] + + f = io.StringIO(content) + reader = csv.DictReader(f) + return [dict(row) for row in reader] diff --git a/obfuscator/logger.py b/obfuscator/logger.py new file mode 100644 index 0000000..ca41e95 --- /dev/null +++ b/obfuscator/logger.py @@ -0,0 +1,24 @@ +import logging +import os + + +def get_logger(name: str) -> logging.Logger: + logger = logging.getLogger(name) + + if not logger.hasHandlers(): + if os.getenv("DEBUG", "FALSE").upper() == "TRUE": + log_level = logging.DEBUG + else: + log_level = logging.INFO + + logger.setLevel(log_level) + + handler = logging.StreamHandler() + formatting = logging.Formatter( + "%(asctime)s - %(levelname)s - %(name)s - %(message)s" + ) + handler.setFormatter(formatting) + + logger.addHandler(handler) + + return logger |
