Module pii_codex.models.common
Expand source code
from __future__ import annotations
from enum import Enum
# All listed PII Types from Milne et al (2018) and a few others along with
# models used for PII categorization for DHS, NIST, and HIPAA
class AnalysisProviderType(Enum):
"""
Analysis Provider Types - software and cloud service APIs providing PII detection results
"""
AZURE: str = "AZURE"
AWS: str = "AWS"
PRESIDIO: str = "PRESIDIO"
class RiskLevel(Enum):
"""
Numerical values assigned to the levels on the continuum presented by Schwartz and Solove (2011)
"""
LEVEL_ONE: int = 1 # Not-Identifiable
LEVEL_TWO: int = 2 # Semi-Identifiable
LEVEL_THREE: int = 3 # Identifiable
class RiskLevelDefinition(Enum):
"""
Levels on the continuum presented by Schwartz and Solove (2011)
"""
LEVEL_ONE: str = "Non-Identifiable" # Default if no entities were detected, risk level is set to this
LEVEL_TWO: str = "Semi-Identifiable"
LEVEL_THREE: str = "Identifiable" # Level associated with Directly PII, PHI, and Standalone PII info types
class MetadataType(Enum):
"""
Common metadata types associated with social media posts and other online platforms
"""
SCREEN_NAME: str = "screen_name"
NAME: str = "name"
LOCATION: str = "location"
URL: str = "url"
USER_ID: str = "user_id"
class PIIType(Enum):
"""
Commonly observed PII types across services and software
"""
PHONE_NUMBER: str = "PHONE"
WORK_PHONE_NUMBER: str = "PHONE"
EMAIL_ADDRESS: str = "EMAIL"
ABA_ROUTING_NUMBER: str = "ABA_ROUTING_NUMBER"
IP_ADDRESS: str = "IP_ADDRESS"
DATE: str = "DATE"
ADDRESS: str = "ADDRESS"
HOME_ADDRESS: str = "ADDRESS"
WORK_ADDRESS: str = "ADDRESS"
AGE: str = "AGE"
PERSON: str = "PERSON"
CREDIT_CARD_NUMBER: str = "CREDIT_CARD_NUMBER"
CREDIT_SCORE: str = "CREDIT_SCORE"
CRYPTO: str = "CRYPTO"
URL: str = "URL"
DATE_TIME: str = "DATE_TIME"
LOCATION: str = "LOCATION"
ZIPCODE: str = "ZIPCODE"
RACE: str = "RACE"
HEIGHT: str = "HEIGHT"
WEIGHT: str = "WEIGHT"
GENDER: str = "GENDER"
HOMETOWN: str = "HOMETOWN"
SCREEN_NAME: str = "SCREEN_NAME"
MARITAL_STATUS: str = "MARITAL_STATUS"
NUMBER_OF_CHILDREN: str = "NUMBER_OF_CHILDREN"
COUNTRY_OF_CITIZENSHIP: str = "COUNTRY_OF_CITIZENSHIP"
VOICE_PRINT: str = "VOICE_PRINT"
FINGERPRINT: str = "FINGERPRINT"
DNA_PROFILE: str = "DNA_PROFILE"
PICTURE_FACE: str = "PICTURE_FACE"
HANDWRITING_SAMPLE: str = "HANDWRITING_SAMPLE"
MOTHERS_MAIDEN_NAME: str = "MOTHERS_MAIDEN_NAME"
DIGITAL_SIGNATURE: str = "DIGITAL_SIGNATURE"
HEALTH_INSURANCE_ID: str = "HEALTH_INSURANCE_ID"
SHOPPING_BEHAVIOR: str = "SHOPPING_BEHAVIOR"
SEXUAL_PREFERENCE: str = "SEXUAL_PREFERENCE"
SOCIAL_NETWORK_PROFILE: str = "SOCIAL_NETWORK_PROFILE"
JOB_TITLE: str = "JOB_TITLE"
INCOME_LEVEL: str = "INCOME_LEVEL"
OCCUPATION: str = "OCCUPATION"
DOCUMENTS: str = "DOCUMENTS"
MEDICAL_LICENSE: str = "MEDICAL_LICENSE"
LICENSE_PLATE_NUMBER: str = "LICENSE_PLATE_NUMBER"
SECURITY_ACCESS_CODES: str = "SECURITY_ACCESS_CODES"
PASSWORD: str = "PASSWORD"
US_SOCIAL_SECURITY_NUMBER: str = "US_SOCIAL_SECURITY_NUMBER"
US_BANK_ACCOUNT_NUMBER: str = "US_BANK_ACCOUNT_NUMBER"
US_DRIVERS_LICENSE_NUMBER: str = "US_DRIVERS_LICENSE_NUMBER"
US_PASSPORT_NUMBER: str = "US_PASSPORT_NUMBER"
US_INDIVIDUAL_TAXPAYER_IDENTIFICATION: str = "US_INDIVIDUAL_TAXPAYER_IDENTIFICATION"
INTERNATIONAL_BANKING_ACCOUNT_NUMBER: str = "INTERNATIONAL_BANKING_ACCOUNT_NUMBER"
SWIFT_CODE: str = "SWIFTCode"
NRP: str = "NRP" # A person's nationality, religion, or political group
class NISTCategory(Enum):
"""
Information Categories presented by NIST as noted in Milne et al., 2016
"""
LINKABLE: str = "Linkable"
DIRECTLY_PII: str = "Directly PII"
class DHSCategory(Enum):
"""
Information Categories presented by DHS as noted in Milne et al., 2016
"""
NOT_MENTIONED: str = "Not Mentioned"
LINKABLE: str = "Linkable"
STAND_ALONE_PII: str = "Stand Alone PII"
class HIPAACategory(Enum):
"""
Information Categories presented by HIPAA guidelines
"""
NON_PHI: str = "Not Protected Health Information"
PHI: str = "Protected Health Information"
class ClusterMembershipType(Enum):
"""
Information Cluster Memberships presented by Milne et al., 2016
"""
BASIC_DEMOGRAPHICS: str = "Basic Demographics"
PERSONAL_PREFERENCES: str = "Personal Preferences"
CONTACT_INFORMATION: str = "Contact Information"
COMMUNITY_INTERACTION: str = "Community Interaction"
FINANCIAL_INFORMATION: str = "Financial Information"
SECURE_IDENTIFIERS: str = "Secure Identifiers"
Classes
class AnalysisProviderType (*args, **kwds)-
Analysis Provider Types - software and cloud service APIs providing PII detection results
Expand source code
class AnalysisProviderType(Enum): """ Analysis Provider Types - software and cloud service APIs providing PII detection results """ AZURE: str = "AZURE" AWS: str = "AWS" PRESIDIO: str = "PRESIDIO"Ancestors
- enum.Enum
Class variables
var AWS : strvar AZURE : strvar PRESIDIO : str
class ClusterMembershipType (*args, **kwds)-
Information Cluster Memberships presented by Milne et al., 2016
Expand source code
class ClusterMembershipType(Enum): """ Information Cluster Memberships presented by Milne et al., 2016 """ BASIC_DEMOGRAPHICS: str = "Basic Demographics" PERSONAL_PREFERENCES: str = "Personal Preferences" CONTACT_INFORMATION: str = "Contact Information" COMMUNITY_INTERACTION: str = "Community Interaction" FINANCIAL_INFORMATION: str = "Financial Information" SECURE_IDENTIFIERS: str = "Secure Identifiers"Ancestors
- enum.Enum
Class variables
var BASIC_DEMOGRAPHICS : strvar COMMUNITY_INTERACTION : strvar CONTACT_INFORMATION : strvar FINANCIAL_INFORMATION : strvar PERSONAL_PREFERENCES : strvar SECURE_IDENTIFIERS : str
class DHSCategory (*args, **kwds)-
Information Categories presented by DHS as noted in Milne et al., 2016
Expand source code
class DHSCategory(Enum): """ Information Categories presented by DHS as noted in Milne et al., 2016 """ NOT_MENTIONED: str = "Not Mentioned" LINKABLE: str = "Linkable" STAND_ALONE_PII: str = "Stand Alone PII"Ancestors
- enum.Enum
Class variables
var LINKABLE : strvar NOT_MENTIONED : strvar STAND_ALONE_PII : str
class HIPAACategory (*args, **kwds)-
Information Categories presented by HIPAA guidelines
Expand source code
class HIPAACategory(Enum): """ Information Categories presented by HIPAA guidelines """ NON_PHI: str = "Not Protected Health Information" PHI: str = "Protected Health Information"Ancestors
- enum.Enum
Class variables
var NON_PHI : strvar PHI : str
class MetadataType (*args, **kwds)-
Common metadata types associated with social media posts and other online platforms
Expand source code
class MetadataType(Enum): """ Common metadata types associated with social media posts and other online platforms """ SCREEN_NAME: str = "screen_name" NAME: str = "name" LOCATION: str = "location" URL: str = "url" USER_ID: str = "user_id"Ancestors
- enum.Enum
Class variables
var LOCATION : strvar NAME : strvar SCREEN_NAME : strvar URL : strvar USER_ID : str
class NISTCategory (*args, **kwds)-
Information Categories presented by NIST as noted in Milne et al., 2016
Expand source code
class NISTCategory(Enum): """ Information Categories presented by NIST as noted in Milne et al., 2016 """ LINKABLE: str = "Linkable" DIRECTLY_PII: str = "Directly PII"Ancestors
- enum.Enum
Class variables
var DIRECTLY_PII : strvar LINKABLE : str
class PIIType (*args, **kwds)-
Commonly observed PII types across services and software
Expand source code
class PIIType(Enum): """ Commonly observed PII types across services and software """ PHONE_NUMBER: str = "PHONE" WORK_PHONE_NUMBER: str = "PHONE" EMAIL_ADDRESS: str = "EMAIL" ABA_ROUTING_NUMBER: str = "ABA_ROUTING_NUMBER" IP_ADDRESS: str = "IP_ADDRESS" DATE: str = "DATE" ADDRESS: str = "ADDRESS" HOME_ADDRESS: str = "ADDRESS" WORK_ADDRESS: str = "ADDRESS" AGE: str = "AGE" PERSON: str = "PERSON" CREDIT_CARD_NUMBER: str = "CREDIT_CARD_NUMBER" CREDIT_SCORE: str = "CREDIT_SCORE" CRYPTO: str = "CRYPTO" URL: str = "URL" DATE_TIME: str = "DATE_TIME" LOCATION: str = "LOCATION" ZIPCODE: str = "ZIPCODE" RACE: str = "RACE" HEIGHT: str = "HEIGHT" WEIGHT: str = "WEIGHT" GENDER: str = "GENDER" HOMETOWN: str = "HOMETOWN" SCREEN_NAME: str = "SCREEN_NAME" MARITAL_STATUS: str = "MARITAL_STATUS" NUMBER_OF_CHILDREN: str = "NUMBER_OF_CHILDREN" COUNTRY_OF_CITIZENSHIP: str = "COUNTRY_OF_CITIZENSHIP" VOICE_PRINT: str = "VOICE_PRINT" FINGERPRINT: str = "FINGERPRINT" DNA_PROFILE: str = "DNA_PROFILE" PICTURE_FACE: str = "PICTURE_FACE" HANDWRITING_SAMPLE: str = "HANDWRITING_SAMPLE" MOTHERS_MAIDEN_NAME: str = "MOTHERS_MAIDEN_NAME" DIGITAL_SIGNATURE: str = "DIGITAL_SIGNATURE" HEALTH_INSURANCE_ID: str = "HEALTH_INSURANCE_ID" SHOPPING_BEHAVIOR: str = "SHOPPING_BEHAVIOR" SEXUAL_PREFERENCE: str = "SEXUAL_PREFERENCE" SOCIAL_NETWORK_PROFILE: str = "SOCIAL_NETWORK_PROFILE" JOB_TITLE: str = "JOB_TITLE" INCOME_LEVEL: str = "INCOME_LEVEL" OCCUPATION: str = "OCCUPATION" DOCUMENTS: str = "DOCUMENTS" MEDICAL_LICENSE: str = "MEDICAL_LICENSE" LICENSE_PLATE_NUMBER: str = "LICENSE_PLATE_NUMBER" SECURITY_ACCESS_CODES: str = "SECURITY_ACCESS_CODES" PASSWORD: str = "PASSWORD" US_SOCIAL_SECURITY_NUMBER: str = "US_SOCIAL_SECURITY_NUMBER" US_BANK_ACCOUNT_NUMBER: str = "US_BANK_ACCOUNT_NUMBER" US_DRIVERS_LICENSE_NUMBER: str = "US_DRIVERS_LICENSE_NUMBER" US_PASSPORT_NUMBER: str = "US_PASSPORT_NUMBER" US_INDIVIDUAL_TAXPAYER_IDENTIFICATION: str = "US_INDIVIDUAL_TAXPAYER_IDENTIFICATION" INTERNATIONAL_BANKING_ACCOUNT_NUMBER: str = "INTERNATIONAL_BANKING_ACCOUNT_NUMBER" SWIFT_CODE: str = "SWIFTCode" NRP: str = "NRP" # A person's nationality, religion, or political groupAncestors
- enum.Enum
Class variables
var ABA_ROUTING_NUMBER : strvar ADDRESS : strvar AGE : strvar COUNTRY_OF_CITIZENSHIP : strvar CREDIT_CARD_NUMBER : strvar CREDIT_SCORE : strvar CRYPTO : strvar DATE : strvar DATE_TIME : strvar DIGITAL_SIGNATURE : strvar DNA_PROFILE : strvar DOCUMENTS : strvar EMAIL_ADDRESS : strvar FINGERPRINT : strvar GENDER : strvar HANDWRITING_SAMPLE : strvar HEALTH_INSURANCE_ID : strvar HEIGHT : strvar HOMETOWN : strvar HOME_ADDRESS : strvar INCOME_LEVEL : strvar INTERNATIONAL_BANKING_ACCOUNT_NUMBER : strvar IP_ADDRESS : strvar JOB_TITLE : strvar LICENSE_PLATE_NUMBER : strvar LOCATION : strvar MARITAL_STATUS : strvar MEDICAL_LICENSE : strvar MOTHERS_MAIDEN_NAME : strvar NRP : strvar NUMBER_OF_CHILDREN : strvar OCCUPATION : strvar PASSWORD : strvar PERSON : strvar PHONE_NUMBER : strvar PICTURE_FACE : strvar RACE : strvar SCREEN_NAME : strvar SECURITY_ACCESS_CODES : strvar SEXUAL_PREFERENCE : strvar SHOPPING_BEHAVIOR : strvar SOCIAL_NETWORK_PROFILE : strvar SWIFT_CODE : strvar URL : strvar US_BANK_ACCOUNT_NUMBER : strvar US_DRIVERS_LICENSE_NUMBER : strvar US_INDIVIDUAL_TAXPAYER_IDENTIFICATION : strvar US_PASSPORT_NUMBER : strvar US_SOCIAL_SECURITY_NUMBER : strvar VOICE_PRINT : strvar WEIGHT : strvar WORK_ADDRESS : strvar WORK_PHONE_NUMBER : strvar ZIPCODE : str
class RiskLevel (*args, **kwds)-
Numerical values assigned to the levels on the continuum presented by Schwartz and Solove (2011)
Expand source code
class RiskLevel(Enum): """ Numerical values assigned to the levels on the continuum presented by Schwartz and Solove (2011) """ LEVEL_ONE: int = 1 # Not-Identifiable LEVEL_TWO: int = 2 # Semi-Identifiable LEVEL_THREE: int = 3 # IdentifiableAncestors
- enum.Enum
Class variables
var LEVEL_ONE : intvar LEVEL_THREE : intvar LEVEL_TWO : int
class RiskLevelDefinition (*args, **kwds)-
Levels on the continuum presented by Schwartz and Solove (2011)
Expand source code
class RiskLevelDefinition(Enum): """ Levels on the continuum presented by Schwartz and Solove (2011) """ LEVEL_ONE: str = "Non-Identifiable" # Default if no entities were detected, risk level is set to this LEVEL_TWO: str = "Semi-Identifiable" LEVEL_THREE: str = "Identifiable" # Level associated with Directly PII, PHI, and Standalone PII info typesAncestors
- enum.Enum
Class variables
var LEVEL_ONE : strvar LEVEL_THREE : strvar LEVEL_TWO : str