1import six 2 3from flex.exceptions import ValidationError 4from flex.error_messages import MESSAGES 5from flex.decorators import ( 6 pull_keys_from_obj, 7 suffix_reserved_words, 8 skip_if_any_kwargs_empty, 9) 10from flex.utils import is_value_of_any_type 11 12 13@pull_keys_from_obj('type', 'default') 14@suffix_reserved_words 15@skip_if_any_kwargs_empty('default', 'type_') 16def validate_default_is_of_one_of_declared_types(default, type_, **kwargs): 17 if isinstance(type_, six.string_types): 18 type_ = [type_] 19 20 if not is_value_of_any_type(default, type_): 21 raise ValidationError( 22 MESSAGES['default']['invalid_type'].format(default, type_), 23 ) 24