目录
- 一、前置说明
- 1、总体目录
- 2、相关回顾
- 3、本节目标
- 二、重构背景
- 三、需求分析
- 三、后置说明
- 1、要点小结
- 2、下节准备
一、前置说明
1、总体目录
- 《 pyparamvalidate 参数校验器,从编码到发布全过程》
2、相关回顾
- param_validator 常用校验器的实现
3、本节目标
- 阐述
pyparamvalidate
重构背景和需求分析。
二、重构背景
pyparamvalidate 已经实现了参数校验的功能,但是不能对获取到的字典内部的数据进行校验,如下:
from pyparamvalidate import ParameterValidator@ParameterValidator("name").is_string().is_not_empty()
@ParameterValidator("age").is_int().is_positive()
@ParameterValidator("gender").is_allowed_value(["male", "female"])
@ParameterValidator("profile").is_similar_dict(reference_dict={'address': ''})
def example_function(name, age, gender='male', **kwargs):profile = kwargs.get("profile")address = profile.get("address")if not address:raise ValueError("address is required")return name, age, gender, profile
目前无法校验:示例中的 address
不能为空。
三、需求分析
校验行为不仅仅出现在对参数的校验上,因此要将 validator
校验器从 ParameterValidator
中抽离出来,适用更多场景。
- 不能改变
ParameterValidator
的使用方式。 validator
校验器,方便调用、提供清晰的错误信息。validator
校验器,支持 return 校验之后的值。
三、后置说明
1、要点小结
- 校验是一个通用行为,不仅出现在参数校验上。
- 可以将
validator
校验器模块化。
2、下节准备
- 将
validator
校验器从ParameterValidator
中抽离出来
点击返回主目录