TIPCommon.validation

TIPCommon.validation 模块包含 ParameterValidator 类,这是确保集成中数据完整性的关键工具。它可自动执行以下流程:检查输入类型、强制执行限制条件(例如数值范围或电子邮件格式),以及提供安全的回退值以防止运行时崩溃。

ParameterValidator

ParameterValidator 类提供了一个用于验证各种参数类型的标准化接口。每种方法都接受参数名称和值,并以适当的 Python 类型返回经过验证的值。如果验证失败且未提供 default_value,则会引发 ParameterValidationError

用法示例

如需使用验证器,请使用 siemplify SDK 对象对其进行初始化:

from TIPCommon.validation import ParameterValidator

# Initialize the validator
validator = ParameterValidator(siemplify)

# Validate and cast strings to specific types
validated_float = validator.validate_float(param_name='Threshold', value='3.7')
validated_int = validator.validate_integer(param_name='Retry Count', value='5')

数值和限制验证

这些方法可确保数值输入在预期范围内,并正确转换为相应的 Python 类型。

函数 参数 说明和退货
validate_float()
  • param_name:(字符串)
  • value:(str | float)
返回:float

验证值是否可以转换为浮点数。适用于阈值或概率得分。

validate_integer()
  • param_name:(字符串)
  • value:(str | int)
返回:int

验证值并将其转换为整数。

validate_range()
  • value:(str | int)
  • min_limit:(整数)
  • max_limit:(整数)
返回:int

确保整数位于 min_limitmax_limit 定义的包含性范围内。

validate_percentage()
  • value:(str | int)
返回:int

确保值是介于 0100 之间的整数(含边界值)。

validate_non_negative()
  • value:(str | int)
返回:int

确保该值为整数 ≥ 0

validate_non_zero()
  • value:(str | int)
返回:int

确保相应值是整数且不等于 0

validate_positive()
  • value:(str | int)
返回:int

确保该值为整数 > 0

validate_lower_limit()
  • value:(str | int)
  • limit:(整数)
返回:int

确保值是指定的 limit

validate_upper_limit()
  • value:(str | int)
  • limit:(整数)
返回:int

确保值是指定的 limit

数据结构和字符串验证

这些方法可验证更复杂的输入类型,例如分隔字符串、JSON 对象和特定格式(如电子邮件地址)。

函数 参数 说明和退货
validate_csv()
  • csv_string:(字符串)
  • delimiter:(str) 默认值为 ', '
  • possible_values:(列表)可选的许可名单。
返回:list

使用分隔符将字符串拆分为列表。如果提供了 possible_values,则会根据该列表验证每个项目。

validate_json()
  • json_string:(字符串)
  • **kwargsjson.loads() 的传递。
返回:dict | list

将字符串解析为 JSON 对象。如果字符串不是有效的 JSON,则会引发错误。

validate_email()
  • email:(字符串)
返回:str

验证所提供的字符串是否符合标准电子邮件格式。

validate_ddl()
  • value:(字符串)
  • ddl_values:(列表)有效值的许可名单。
  • case_sensitive:(布尔值)默认值为 False
返回:str

验证输入是否与定义的 DDL 中的某个值匹配。

validate_severity()
  • severity:(str | int)
  • possible_values:(列表)
返回:int

验证平台严重程度输入。正确映射平台标准严重程度标签(例如“高”)及其等效的整数等级。

全局验证配置

ParameterValidator 类中的每个验证方法都支持以下可选关键字实参,以控制失败时的行为或用于调试:

  • default_value:如果提供,则在验证失败时返回此值,而不是引发 ParameterValidationError

  • print_value:(bool) 如果为 True,则导致失败的无效值会包含在日志消息中。默认值为 True

  • print_error:(bool) 如果为 True,则平台日志中会包含具体的异常消息。默认值为 False