from ..config import Configuration
from ..tokenizer.base import AbstractTokenizer
+
def _flatten_name_list(names: Any) -> Dict[str, str]:
if names is None:
return {}
return flat
-
class _CountryInfo:
""" Caches country-specific properties from the configuration file.
"""
def __init__(self) -> None:
self._info: Dict[str, Dict[str, Any]] = {}
-
def load(self, config: Configuration) -> None:
""" Load the country properties from the configuration files,
if they are not loaded yet.
for x in prop['languages'].split(',')]
prop['names'] = _flatten_name_list(prop.get('names'))
-
def items(self) -> Iterable[Tuple[str, Dict[str, Any]]]:
""" Return tuples of (country_code, property dict) as iterable.
"""
return self._info.get(country_code, {})
-
_COUNTRY_INFO = _CountryInfo()
"""
_COUNTRY_INFO.load(config)
+
@overload
def iterate() -> Iterable[Tuple[str, Dict[str, Any]]]:
...
+
@overload
def iterate(prop: str) -> Iterable[Tuple[str, Any]]:
...
+
def iterate(prop: Optional[str] = None) -> Iterable[Tuple[str, Dict[str, Any]]]:
""" Iterate over country code and properties.
# country names (only in languages as provided)
if name:
- names.update({k : v for k, v in name.items() if _include_key(k)})
+ names.update({k: v for k, v in name.items() if _include_key(k)})
analyzer.add_country_names(code, names)