Pyrefly Blog

RSS: https://pyrefly.org/blog/rss.xml
Pyrefly 博客。

FwPython 第一篇:背景设定

Pyrefly 团队发布 FwPython,这是一个在 Lean 4 中形式化的小型 Python 子集,旨在精准测试类型检查器的推理边界。首篇博文介绍了源语言与运行时模型,为深入理解 Python 类型系统的底层逻辑提供了新的形式化视角。
评论点赞收藏37 天前

少定义多检查:Pyrefly 原生支持 attrs

Pyrefly 静态检查工具新增对 attrs 库的原生支持,无需插件或配置即可识别其经典与现代 API。对于大量使用 attrs 减少样板代码的 Python 开发者而言,这意味着可以直接获得更完善的类型检查体验,简化了工程配置。
评论点赞收藏46 天前

现在要同时跑五个 Python 类型检查器了吗?

Python 类型检查器已扩展到 Mypy、Pyrefly、Pyright、ty、Zuban 五个主流工具,库维护者不可能在每个版本都对所有工具跑源码。本文给出一个反直觉但实操性极强的建议:优先在测试套件上运行多个类型检查器,而非在源码上。作者以 Polars 库为实例,展示了 DataType.eq 方法为兼容四个检查器需要写 4 种不同的 type-ignore 注释,代码污染严重;而测试用例却被所有检查器零错误通过。核心结论是:用户关心的是公共 API 在不同类型检查器下能否正常工作,而非维护者内部的类型风格。与其让源码布满兼容性补丁,不如用测试覆盖所有检查器来保障 API 质量。文中还讨论了不同检查器在严格/宽松谱系上的设计取舍,以及 Pyrefly 在速度和规范符合度上的优势。对 Python 生态中编写库或工具的开发者来说,这篇提供了可复用的策略和具体案例,值得讨论。
评论点赞收藏68 天前

Pyrefly v1.0 正式发布

Pyrefly 宣布达到稳定版 1.0 状态的标准版本发布公告,介绍了新功能和入门方式。内容为典型的工具发布通稿,缺乏深度见解或一手经验细节,信息密度低。
评论点赞收藏96 天前

Pyrefly 张量形状追踪与静态类型检查

PyTorch 模型中最难追踪的张量形状错误可导致静默错误而不崩溃。Pyrefly 1.1.0 推出 Tensor Shapes 功能,基于符号整数算术(Dim[X] 泛型参数支持类型级加减乘除)和形状变换 DSL,在编辑器中自动推断并展示所有中间张量的形状(如 Tensor[B,T,NEmbedding]),只需在类和函数边界标注少量类型,局部变量全自动推断。本文详解了与 Pyre/Pyright 方案(语法冗长、需大量类型级操作符)及 Jaxtyping(无法跨类共享符号维度)的对比,Pyrefly 更简洁且支持端到端模块层级类型检查,还开放了 DSL 扩展接口让社区贡献新算子的形状规则。适合 PyTorch 开发者评估和选型静态形状检查工具。
评论点赞收藏96 天前

类型正确但代码出错:类型检查器能捕获的五个意外 Bug

Pyrefly 类型检查器能发现的远不止类型不匹配。文章列出了五个真实 Python 错误示例——从忘记 await 到重命名参数——这些错误你的类型检查器可以在用户发现之前提前捕获。每个例子都是实际开发中容易踩坑的高频 Bug 模式,对于 Python 开发者来说是直接可用的避坑参考。
评论点赞收藏117 天前

将 Pyrefly 类型检查集成到你的 AI Agent 工作流中

教程性质的操作指南,介绍如何通过 skills 和 hooks 将 Pyrefly 类型检查集成到 AI agent 工作流中,实现自动验证生成的 Python 代码。有具体的集成步骤和实用操作方法,对使用 AI 编码工具链的开发者有实用价值。
评论点赞收藏125 天前

Python 类型检查器速度与内存占用对比

对 Pyrefly、Ty、Pyright、Mypy 等主流 Python 类型检查器进行速度和内存占用的基准测试对比。适合正在选型类型检查工具的 Python 项目参考,但本质是项目方自家发布的性能对比,缺少第三方独立视角,可作数据参考但需注意立场偏差。
评论点赞收藏128 天前

如何在语言服务器中支持 Notebook

Pyrefly 团队分享了将 Jupyter notebook 支持集成到语言服务器(Pyrefly)中的工程实践。文章不仅介绍了他们自己怎么做的,还提炼出可供其他语言服务器借鉴的通用思路。对于做 IDE 工具、语言协议或 Python 开发体验的读者,这是一份来自一线的技术决策笔记,有具体实现路径和可迁移的方法论,不是空泛的最佳实践。
评论点赞收藏136 天前

通过删除未标注类型的代码达到 100% 类型覆盖率

Pyrefly 团队讲了一个反直觉的真实故事:他们最终解决"类型覆盖率 100%"这个老大难问题,方法不是把所有代码补上类型注解,而是直接删掉了没有注解的代码。这个思路本身就很有讨论价值——覆盖率指标到底是在衡量什么?文章短但有明确的观点和真实工程决策,比空洞的"最佳实践"文章更值得一读,也更容易引发同行讨论。
评论点赞收藏137 天前

塑造 Pyrefly 的 Pyre 经验教训

作者分享了在开发 Pyre(另一 Python 类型检查器)过程中积累的经验教训,以及这些教训如何影响 Pyrefly 的设计决策。有实际的工程反思和一手经验,对类型系统开发者有启发,但整体偏向自家产品的宣传叙述。
评论点赞收藏151 天前

Python 类型检查器对比:类型规范遵循度

深入对比 Pyrefly、Ty、Pyright 和 Mypy 等主流 Python 类型检查器对 typing 规范的遵循程度。解释了遵循规范的具体含义和重要性,并列出了各个检查器的实际达标状态。是一份有数据支撑的横向对比参考资料,对 Python 开发者选择类型检查工具具有实际参考价值。
评论点赞收藏159 天前

pandas 公共 API 现已实现完整类型标注

本文讲述了 Pyrefly 团队如何帮助 pandas 实现公共 API 的完整类型标注,并介绍了防止退化的方法。包含具体的技术实现故事和工程实践,解释了类型标注的完整过程和背后的技术挑战,对 Python 类型系统深度用户有参考价值。
评论点赞收藏166 天前

Pyrefly IDE extension now 18x faster

As we move closer to a stable release of Pyrefly, our efforts have moved from expanding the language server’s capabilities to tackling performance edge cases. Recently, our friends at Astral alerted u...
评论点赞收藏186 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。