pyparamvalidate 重构背景和需求分析

一、前置说明

1、总体目录

2、相关回顾

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 中抽离出来

点击返回主目录

相关推荐

  1. pyparamvalidate 重构背景需求分析

    2024-01-07 06:04:02       57 阅读
  2. 需求分析分类层级、分析步骤

    2024-01-07 06:04:02       23 阅读
  3. 重构——IdGenerator重构分析过程

    2024-01-07 06:04:02       123 阅读
  4. 作为产品经理,如何分析管理产品需求

    2024-01-07 06:04:02       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-07 06:04:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-07 06:04:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-07 06:04:02       82 阅读
  4. Python语言-面向对象

    2024-01-07 06:04:02       91 阅读

热门阅读

  1. go 语言中的别名类型

    2024-01-07 06:04:02       55 阅读
  2. LightGlue-OpenCV 实现实时相机图片特征点匹配

    2024-01-07 06:04:02       61 阅读
  3. 数据库7种范式

    2024-01-07 06:04:02       35 阅读
  4. 分布式锁3: zk实现分布式锁5 使用中间件curator

    2024-01-07 06:04:02       53 阅读
  5. GhostscriptExample GS pdf转曲 pdf去白边

    2024-01-07 06:04:02       63 阅读
  6. K8S--- volumes&volumeMount

    2024-01-07 06:04:02       59 阅读