我正在尝试向验证器添加几种自定义类型
目前我有一个验证日期类型的。我想添加另一个来验证正整数
from datetime import date
date_checker = Draft7Validator.TYPE_CHECKER.redefine("date", lambda _, instance: isinstance(instance, date))
custom_validator = validators.extend(Draft7Validator, type_checker=date_checker)
validator = custom_validator(schema={"type": "date"})
validator.validate(config, schema)
如何向同一验证器对象添加另一种不同的类型?
玩了几个变化后,我得到了这个工作。如果这是最好的方式,我不是100%确定....但它确实有效
date_checker = Draft7Validator.TYPE_CHECKER.redefine_many({
"date": lambda _, instance: isinstance(instance, date),
"pos_int": lambda _, instance: isinstance(instance, int) and instance >= 0
})
custom_validator = validators.extend(Draft7Validator, type_checker=date_checker)
validator = custom_validator(schema)
validator.validate(config)