Pydantic V2 首个 alpha 版本已发布。Pydantic 是 Python 语言的开源类型规范和校验库,提供了强大的数据解析和验证功能,包括运行时强制类型提示、友好的错误消息和设置管理功能等。
发布公告写道,Pydantic V2 的最大变化是 pydantic-core
——所有验证逻辑都已用 Rust 重写并迁移至单独的pydantic-core
包。这项变化带来了巨大的改进:
- 性能——Pydantic V2 比 Pydantic V1 快 5-50 倍。
- 安全性和可维护性——此版本变更了架构,团队认为这将有助于他们维护 Pydantic V2,从长远来看,错误要少得多。
使用pydantic-core
后,Pydantic 库中的大部分逻辑专门用于生成"pydantic core schema"——所使用的模式定义了新的高性能pydantic-core
验证器和序列化器的行为。
其他处于实验性阶段的功能:
- BaseModel——Pydantic V1 中的验证核心仍然存在,但使用了新的方法名称
- 数据类——改进了 Pydantic 数据类并已准备好进行测试
- 序列化——转储/序列化/编组更加灵活,可以进行测试
- 严格模式 (Strict Mode)——Pydantic V2 最大的新增功能之一是严格模式,现已准备好进行测试
- JSON Schema——生成 JSON Schema 有了很大改进,现已可以进行测试
- 通用模型 (Generic Models)——包含重大改进
- 递归模型——递归数据结构的验证有重大改进
- 自定义类型——引入新的接口,可以进行测试
- 自定义字段修饰符——通过
Annotated[]
的使用正在运行中,并在 Pydantic 本身中使用 - 无需 BaseModel 的验证——新的
AnalyzedType
类允许在不需要BaseModel
类的情况下进行验证 - TypedDict——现在通过
AnalyzedType
完全支持TypedDict