#4540·ty

可选规则,用于检查 Pydantic 构造器参数与声明的字段类型是否匹配

作者: tibbe创建于 2026年9月16日更新于 2026年9月16日
标签questionpydantic

页:1

Ty 模型 Pydantic 构造器 与松弛的强制, 所以这两个传:

py 导入 pydantic

类模型( pydantic.BaseModel) : 计数: 整数

型号( count=' 123' ) # ty: OK – 运行时强制为 123 model( counts='abc') # ty: OK- 但提高运行时的验证错误


第一种是书上说的正确. 第二个问题是:Ty接受一个总是在运行时失败的电话,因为`str'对于`int'一般来说是一种有效的松动输入,但这种特定的`str'并不是。

以“init typed = True”表示的`pydantic.mypy'拒绝两者:

错误:参数"计数"到"模型"有不相容的"str";预期"int"[arg-type]


确定`init typed = True'的小组有意选择不依赖胁迫——他们希望申报的野外类型在施工时强制执行。 目前无法在ty中表达这一点,因为ty会阻止任何使用此设置的代码库迁移.

请求(request):默认情况下的选入规则,用于检查构造者针对所声明的字段类型而不是松散输入类型提出的参数.

这是与#3966相同的形状,在那里,Ty正确尊重`extra=ignore',但各小组无论如何都希望进行更严格的检查,而决议是他们可以关闭的规则。 缺省将在此倒转:默认取消,由来自"init typed = True"的队伍启用.

翻译:

页:1