Source code for betty.locale.localizable.assertion
"""
Provide localizable assertions.
"""
from __future__ import annotations
from typing import Any, TYPE_CHECKING
from betty.assertion import (
AssertionChain,
assert_or,
assert_str,
assert_mapping,
assert_locale_identifier,
)
from betty.locale import UNDETERMINED_LOCALE
if TYPE_CHECKING:
from betty.locale.localizable import StaticTranslations
[docs]
def assert_static_translations() -> AssertionChain[Any, StaticTranslations]:
"""
Assert that a value represents static translations.
"""
return assert_or(
assert_str().chain(lambda translation: {UNDETERMINED_LOCALE: translation}),
assert_mapping(assert_str(), assert_locale_identifier()),
)