aboutsummaryrefslogtreecommitdiffstats
path: root/obfuscator/obfuscate.py
blob: 9cd3a038ff5c8d5c69bf024dc4df65cf073436d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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 was provided to obfuscate")
        raise ValueError("Invalid data provided to obfuscate")
    if not pii_fields:
        logger.error("No PII fields provided to obfuscate")
        raise ValueError("No PII fields provided to obfuscate")

    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