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

1from typing import List 

2 

3import regex as re 

4 

5 

6def validate_language_codes(languages: List[str]) -> None: 

7 """Validate language codes format. 

8 

9 :param languages: List of languages to validate. 

10 """ 

11 language_code_regex = re.compile(r"^[a-z]{2}(-[A-Z]{2})?$") 

12 

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 )