Guides
Validation
Validate a single value with PrivacyGuard.validate and inspect ValidationResult metadata.
Use PrivacyGuard.validate() when you already know which detector should validate a value.
Basic validation
from fastpii import PrivacyGuard
guard = PrivacyGuard(regions=["cz"])
result = guard.validate("8001011238", "rodne_cislo")
print(result.detector)
print(result.value)
print(result.is_valid)
print(result.metadata)ValidationResult fields
| Field | Type | Description |
|---|---|---|
detector | str | Detector name used for validation |
value | str | Original value passed to validate() |
is_valid | bool | Validation outcome |
metadata | dict[str, Any] | Extracted metadata when the detector provides it |
Validate a Czech birth number
rodne_cislo exposes the richest metadata.
from fastpii import PrivacyGuard
guard = PrivacyGuard(regions=["cz"])
result = guard.validate("8001011238", "rodne_cislo")
print(result.is_valid)
print(result.metadata["checksum_valid"])
print(result.metadata["birth_date"])
print(result.metadata["gender"])
print(result.metadata["article_9"])Example metadata:
{
"checksum_valid": True,
"birth_date": "1980-01-01",
"gender": "male",
"article_9": True,
}Validate IČO
from fastpii import PrivacyGuard
guard = PrivacyGuard(regions=["cz"])
result = guard.validate("25596641", "ico")
print(result.is_valid)
print(result.metadata)Example metadata:
{"checksum_valid": True}Validate DIČ
from fastpii import PrivacyGuard
guard = PrivacyGuard(regions=["cz"])
result = guard.validate("CZ25596641", "dic")
print(result.is_valid)
print(result.metadata)Example metadata:
{"type": "individual"}dic metadata can identify the detected type such as company, special, or individual.
Validate email addresses
from fastpii import PrivacyGuard
guard = PrivacyGuard(regions=["cz"])
result = guard.validate("jan.novak@email.cz", "email")
print(result.is_valid)
print(result.metadata)Example metadata:
{
"local_part": "jan.novak",
"domain": "email.cz",
"is_czech_domain": True,
"provider": "email",
}Handle invalid values
Validation failures do not raise an error for bad data. They return is_valid=False.
from fastpii import PrivacyGuard
guard = PrivacyGuard(regions=["cz"])
result = guard.validate("8001011235", "rodne_cislo")
if not result.is_valid:
print("Invalid value")Handle unknown detectors
from fastpii import PrivacyGuard
guard = PrivacyGuard(regions=["cz"])
try:
guard.validate("12345", "unknown_detector")
except KeyError:
print("Detector not found")