11"""Language model for representing language codes."""
22
3- from functools import total_ordering , cached_property
4- import re
3+ from functools import cached_property , total_ordering
54from typing import Any , ClassVar
65
7- from pydantic import BaseModel , Field , computed_field , model_validator , field_validator
6+ from pydantic import BaseModel , Field , computed_field , field_validator , model_validator
87from pydantic .config import ConfigDict
98
109from ..constants import ALLOWED_LANGUAGES
@@ -118,7 +117,7 @@ def matches(self, other: 'LanguageCode | str') -> bool:
118117 return (
119118 self .language == '*' or other_value == '*' or self .language == other_value
120119 )
121-
120+
122121 @field_validator ('language' , mode = 'before' )
123122 @classmethod
124123 def _normalize_language_separator (cls , value : str ) -> str :
@@ -153,7 +152,7 @@ def _parts(self) -> tuple[str, str] | tuple[str]:
153152 """
154153 if self .language == '*' :
155154 return ('*' ,)
156-
155+
157156 # Use split('-') as the separator is already normalized
158157 parts = self .language .split ('-' )
159158 return (parts [0 ], parts [1 ]) if len (parts ) > 1 else (parts [0 ],)
@@ -174,4 +173,4 @@ def lang(self) -> str:
174173 )
175174 def country (self ) -> str :
176175 """Extract the country part of the language code (property)."""
177- return self ._parts [1 ] if len (self ._parts ) > 1 else '*'
176+ return self ._parts [1 ] if len (self ._parts ) > 1 else '*'
0 commit comments