Coverage for presidio_analyzer / input_validation / language_validation.py: 100%
7 statements
« prev ^ index » next coverage.py v7.13.1, created at 2026-03-29 09:03 +0000
« prev ^ index » next coverage.py v7.13.1, created at 2026-03-29 09:03 +0000
1from typing import List
3import regex as re
6def validate_language_codes(languages: List[str]) -> None:
7 """Validate language codes format.
9 :param languages: List of languages to validate.
10 """
11 language_code_regex = re.compile(r"^[a-z]{2}(-[A-Z]{2})?$")
13 for lang in languages:
14 if not re.match(language_code_regex, lang):
15 raise ValueError(
16 f"Invalid language code format: {lang}. "
17 f"Expected format: 'en' or 'en-US'"
18 )