Source code for concrete_settings.validators.value_type_validator

from typeguard import check_type

from concrete_settings.exceptions import ValidationError
from concrete_settings.types import Undefined
from .validator import Validator


[docs]class ValueTypeValidator(Validator): def __init__(self, type_hint=None): self.type_hint = type_hint def __call__(self, value, *, name, setting, **ignore): if value is Undefined: return type_hint = setting.type_hint if self.type_hint is None else self.type_hint try: check_type(name, value, type_hint) except TypeError as e: raise ValidationError( f'Expected value of type `{type_hint}` ' f'got value of type `{type(value)}`' ) from e