Source code for betty.locale.localizable.assertion
"""
Provide localizable assertions.
"""
from typing import Any
from betty.assertion import (
assert_or,
assert_str,
assert_mapping,
assert_locale,
AssertionChain,
)
from betty.locale import UNDETERMINED_LOCALE
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()),
)