aboutsummaryrefslogtreecommitdiffstats
path: root/gdpr_obfuscator/obfuscate.py
blob: 63c0da8bb831345172fad618d473985be5c96daa (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
25
26
27
28
29
30
31
from typing import List, Dict


def obfuscate_data(
    data: List[Dict[str, str]], pii_fields: List[str]
) -> List[Dict[str, str]]:
    """


    Args:
        data (List[Dict[str, str]]): _description_
        pii_fields (List[str]): _description_

    Raises:
        ValueError: _description_

    Returns:
        List[Dict[str, str]]: _description_
    """

    for record in data:
        missing_pii_fields = [field for field in pii_fields if field not in record]
        if missing_pii_fields:
            raise ValueError(
                f"A record is missing required PII fields: {missing_pii_fields}"
            )

    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