aboutsummaryrefslogtreecommitdiffstats
path: root/gdpr_obfuscator/obfuscate.py
diff options
context:
space:
mode:
Diffstat (limited to 'gdpr_obfuscator/obfuscate.py')
-rw-r--r--gdpr_obfuscator/obfuscate.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/gdpr_obfuscator/obfuscate.py b/gdpr_obfuscator/obfuscate.py
new file mode 100644
index 0000000..cd12b6d
--- /dev/null
+++ b/gdpr_obfuscator/obfuscate.py
@@ -0,0 +1,26 @@
+from typing import List, Dict
+from obfuscator.logger import get_logger
+
+logger = get_logger("OBFUSCATE")
+
+
+def obfuscate(
+ data: List[Dict[str, str]], pii_fields: List[str]
+) -> List[Dict[str, str]]:
+ """
+ A function to obfuscate PII fields in a list of dictionaries, replacing
+ sensitive values with a string of asterisks.
+ """
+ if not data:
+ logger.error(
+ "Invalid or empty data was provided to obfuscate. Returning empty list."
+ )
+ return []
+ if not pii_fields:
+ logger.error("No PII fields provided to obfuscate. Returning data unchanged.")
+ return data
+
+ return [
+ {k: ("***" if k in pii_fields else v) for k, v in record.items()}
+ for record in data
+ ]
git.ajschof.me — hosted by ajschofield — powered by cgit