Я пытаюсь определить мою схему валидатора для библиотеки python cerberus в YAML, так как она более читаема человеком. Я столкнулся с проблемой, при которой, если я пытаюсь определить принудительную функцию в YAML, я получаю SchemaError. Начиная с примера с Нормализация строки к дате в cerbrus , я изменил ее, чтобы использовать схему YAML.
import datetime
import yaml
st = '''
start_date:
type: datetime
coerce: to_date
'''
schema = yaml.load(st)
v = cerberus.Validator()
to_date = lambda s: datetime.strptime(s, '%Y-%m-%d')
v.schema = schema
v.validate({'start_date': '2017-10-01'})
Я получаю ошибку:
SchemaError: {'start_date': [{'coerce': ['none или более одного правила
validate ', {' oneof Definition 0 ': [' должно быть вызываемого типа '],' oneof
определение 1 ': [' должно иметь тип списка '],' одно из определения 2 ':
['unallowed value to_Date']}]}]}
Поддерживается ли определение функций принуждения со схемой на основе YAML или мне нужно переключиться обратно на использование JSON?