Pyrefly
Pyrefly 是一个 Python 类型检查器和语言服务器,内置支持多项 Pydantic 特有功能。Pydantic 和 Pyrefly 安装后,这些支持即可开箱即用,无需额外配置。
Pyrefly 既可作为 IDE 扩展,也可作为 命令行类型检查器 使用。
IDE 扩展¶
Pyrefly 为您的 Pydantic 模型提供诸如“跳转到定义”和“自动补全”等 IDE 功能。
这是一个签名帮助的示例,它得益于 Pyrefly 对 Pydantic 特有的 validation_alias
关键字的理解
当您输入 Model()
时,Pyrefly 会提示您需要使用名称 x_
来填充 x
字段。
类型检查器¶
Pyrefly 还可以在您运行代码之前捕获其中的错误。请看以下示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
由于 Model1
使用标准类型系统功能声明它是不可变的,因此您选择的任何类型检查器都会捕获修改 model1.x
导致的验证错误。然而,没有 Pydantic ConfigDict
类特殊支持的类型检查器将错过修改 model2.x
导致的验证错误。
Pyrefly 捕获了这两个错误
ERROR Cannot set field `x` [read-only]
--> foo.py:11:1
|
11 | model1.x = 1 # validation error: mutating a frozen field
| ^^^^^^^^
|
This field belongs to a frozen Pydantic model
ERROR Cannot set field `x` [read-only]
--> foo.py:14:1
|
14 | model2.x = 1 # validation error: mutating a frozen field
| ^^^^^^^^
|
This field belongs to a frozen Pydantic model
欲了解更多信息,请参阅 Pyrefly 文档。