config.validators

配置验证器

Classes

ComponentValidatorFactory

组件验证器工厂

DefaultValidatorFactory

默认的验证器工厂

FieldDefinition

字段定义,包含类型注解和默认值

ValidatorOptions

验证器选项

ValidatorTypes

验证器类型

Functions

pydantic_validator(...)

验证器选项 skip_missing 无效

Module Contents

class ComponentValidatorFactory(validator: collections.abc.Mapping[str | None, collections.abc.Callable[[config.utils.Ref[ICD]], ICD]], validator_options: ValidatorOptions)

组件验证器工厂

在 0.2.0 版本加入.

参数:
  • validator (Mapping[str | None, Callable[[Ref[ICD]], ICD]]) -- 组件验证器

  • validator_options (ValidatorOptions) -- 验证器选项

额外验证器选项

键名

描述

默认值

类型

allow_initialize

是否允许初始化不存在的组件成员(注意! 现在的实现方式会强制初始化成员为 MappingConfigData)

True

bool

meta_validator

组件元数据验证器

尝试从传入的组件元数据获得,若不存在(值为None)则放弃验证

Callable[[ComponentMeta, ValidatorOptions], ComponentMeta]

在 0.3.0 版本发生变更: 更改参数 validator 类型为 Mapping[str | None, Callable[[Ref[ICD]], ICD]] 并移除因此冗余的移除额外验证器选项 validator_factory

__call__(config_ref: config.utils.Ref[D | config.basic.object.NoneConfigData]) D

验证配置数据

参数:

config_ref (Ref[D | NoneConfigData]) -- 配置数据引用

返回:

验证后的配置数据

返回类型:

D

在 0.3.0 版本发生变更: 拆分验证成员元数据到方法 _validate_member_metadata()

_validate_member_metadata(component_data: D) dict[str, ICD]

验证组件成员元数据

参数:

component_data (D) -- 组件数据

返回:

验证后的组件数据

返回类型:

dict[str | None, ICD]

validator_options
validators
class DefaultValidatorFactory(validator: collections.abc.Iterable[str] | collections.abc.Mapping[str, Any], validator_options: ValidatorOptions)

默认的验证器工厂

参数:
  • validator (Iterable[str] | Mapping[str, Any]) -- 用于生成验证器的数据

  • validator_options (ValidatorOptions) -- 验证器选项

额外验证器选项

键名

描述

默认值

类型

model_config_key

内部编译 pydanticBaseModel 时,模型配置是以嵌套字典的形式存储的,因此请确保此参数不与任何其中子模型名冲突

".__model_config__"

Any

在 0.1.2 版本发生变更: 支持验证器混搭路径字符串和嵌套字典

在 0.1.4 版本发生变更: 支持验证器非字符串键 (含有非字符串键的子验证器不会被递归处理)

__call__(config_ref: config.utils.Ref[D | config.basic.object.NoneConfigData]) D

验证配置数据

参数:

config_ref (Ref[D | NoneConfigData]) -- 配置数据引用

返回:

验证后的配置数据

返回类型:

D

_compile() None

编译模板

_fmt_mapping_key(validator: collections.abc.Mapping[str, Any]) tuple[collections.abc.Mapping[str, Any], set[str | config.abc.ABCPath[Any]]]

格式化验证器键

参数:

validator (Mapping[str, Any]) -- Mapping验证器

返回:

格式化后的映射键和被覆盖的Mapping父路径

返回类型:

tuple[Mapping[str, Any], set[str | ABCPath[Any]]]

在 0.3.0 版本发生变更: 拆分覆盖检查到函数 _check_overwriting_exists_path()

_mapping2model(mapping: collections.abc.Mapping[str, Any], model_config: dict[str, Any]) type[pydantic.BaseModel]

将Mapping转换为Model

参数:

mapping (Mapping[str, Any]) -- 需要转换的Mapping

返回:

转换后的Model

返回类型:

type[BaseModel]

在 0.3.0 版本发生变更: 拆分字段定义转换到函数 _convert2definition()

model: type[pydantic.BaseModel]
model_config_key
typehint_types
validator
validator_options
class FieldDefinition(annotation: T, default: Any, *, allow_recursive: bool = True)
class FieldDefinition(annotation: T, *, default_factory: collections.abc.Callable[[], Any], allow_recursive: bool = True)

字段定义,包含类型注解和默认值

在 0.1.4 版本发生变更: 新增 allow_recursive 字段

在 0.3.0 版本发生变更: 新增对 TypeAliasType 支持

参数:
  • annotation (T) -- 用于类型检查的类型

  • default (Any) -- 字段默认值

  • default_factory (Callable[[], Any] | UnsetType) -- 字段默认值工厂

  • allow_recursive (bool) -- 是否允许递归处理字段值

在 0.2.0 版本发生变更: 重命名参数 type_value

重命名参数 annotationdefault

添加参数 default_factory

allow_recursive = True
annotation
value
class ValidatorOptions

验证器选项

在 0.3.0 版本发生变更: 重命名 ValidatorFactoryConfigValidatorOptions

allow_modify: bool = True

是否允许在填充默认值时同步填充源数据

在 0.1.2 版本发生变更: 重命名 allow_createallow_modify

在 0.2.0 版本发生变更: 现在默认为 True

extra: dict[str, Any]
skip_missing: bool = False

是否忽略不存在的路径

在 0.2.0 版本发生变更: 重命名 ignore_missingskip_missing

class ValidatorTypes

Bases: enum.Enum

验证器类型

COMPONENT = 'component'

在 0.2.0 版本加入.

CUSTOM = 'custom'

在 0.2.0 版本发生变更: 重命名 IGNORENO_VALIDATION

在 0.3.0 版本发生变更: 重命名 NO_VALIDATIONCUSTOM

DEFAULT = None
PYDANTIC = 'pydantic'
pydantic_validator(validator: type[pydantic.BaseModel], cfg: ValidatorOptions) collections.abc.Callable[[config.utils.Ref[pydantic_validator.D | config.basic.object.NoneConfigData]], pydantic_validator.D]

验证器选项 skip_missing 无效

参数:
返回:

验证器

返回类型:

Callable[[Ref[D | NoneConfigData]], D]