介绍Pyrefly:一种全新的Python类型检查器和集成开发环境体验

B站影视 内地电影 2025-05-16 12:01 2

摘要:今天,Pyrefly的Alpha版本正式发布,这是一个由Rust开发的开源Python类型检查器和IDE扩展。它旨在通过静态类型检查来确保Python代码的类型一致性,从而帮助开发者在执行代码之前捕捉潜在错误。Pyrefly支持IDE集成和命令行使用,提供灵活

今天,Pyrefly的Alpha版本正式发布,这是一个由Rust开发的开源Python类型检查器和IDE扩展。它旨在通过静态类型检查来确保Python代码的类型一致性,从而帮助开发者在执行代码之前捕捉潜在错误。Pyrefly支持IDE集成和命令行使用,提供灵活的开发工作流程。该项目源于2017年的一项使命,旨在管理Instagram的类型化Python代码库,并借鉴了Pyre类型检查器的经验。Pyrefly的核心原则包括高性能、IDE优先的方法和类型推断,确保用户即使在缺乏类型注释的情况下也能受益。作为一个开源项目,Pyrefly在GitHub上托管,欢迎社区的参与和反馈。Meta团队希望通过Pyrefly提升Python开发者的体验,推动语言的发展。

今天,我们很高兴地宣布Pyrefly的Alpha版本,它是一个由Rust开发的开源Python类型检查器和IDE扩展。Pyrefly作为一个静态类型检查器,分析Python代码以确保类型一致性,使开发者能够在执行之前捕捉到代码库中的错误。此外,它支持与IDE的集成和命令行界面(CLI)使用,为您在开发工作流程中的整合提供了灵活性。

开源社区在Python编程语言的发展中扮演着至关重要的角色。我们热切期待与社区合作,增强Pyrefly,改善Python的类型系统,以及我们所有项目所依赖的各种库。

准备好开始了吗?官方Pyrefly网站包含所有必要的详细信息,但为了帮助您迅速上手,我们已概述了要点。

在2017年,我们开始了一项使命,开发一个能够管理Instagram庞大类型化Python代码库的类型检查器。这一努力促成了Pyre类型检查器的诞生,它受到了Hack和Flow的强大设计的启发,并使用OCaml实现以达到可扩展的性能。多年来,Pyre有效地履行了其职责,但随着类型系统的发展以及对提高IDE响应性的类型检查需求的显现,显然需要一种新的方法。

我们探索了各种替代解决方案,并利用了像Pyright这样的社区工具进行代码导航。然而,对于一个可扩展的类型检查器的需求,它能够促进代码导航,支持大规模检查,并允许类型导出到其他服务,促使我们重新开始,最终创造了Pyrefly。

我们非常高兴地介绍Pyrefly,这是一个我们在GitHub上透明开发的项目。我们鼓励您探索我们的工作并在自己的项目中尝试。尽管Pyrefly的开发涉及许多技术决策,但几个关键原则指导着我们的努力:

我们的目标是将以前在持续集成(CI)过程中较晚发生的检查转移到每次按键时进行。这需要快速的代码检查(在大型代码库上,我们每秒可以检查180万行代码!)以及对增量性和更新的仔细考虑。Pyrefly使用Rust构建,旨在在不同规模的代码库中提供高性能。

我们希望IDE和命令行共享统一的视角,这需要创建能够捕捉差异而不产生不必要开销的抽象。从一开始就设计这些抽象远比试图对其进行改造容易,这是我们在Pyre中遇到的挑战。

虽然一些Python程序包含类型注释,但许多并不包含。我们希望用户即使在缺乏显式注释的情况下也能受益于类型——因此,我们自动推断返回值和局部变量的类型,并在IDE中显示它们。此外,在IDE中,您可以双击插入这些推断的类型,如果您认为它们能增强程序。

Python是一种开源语言,拥有巨大的受欢迎程度。Python类型规范也是开源的,简化了Pyrefly的开发。Meta贡献的许多库都是开源的(例如,PyTorch)。Pyrefly本身是开源的,托管在GitHub上,采用MIT许可证,我们欢迎拉取请求和问题报告。我们还拥有一个Discord频道,以便进行动态讨论,并希望围绕Pyrefly培养一个社区。

我们致力于与Python社区合作,推动语言的发展并提升开发者体验。自Pyre诞生以来,我们已将我们的代码开源,并与其他类型检查器的维护者一起贡献了多个Python增强提案(PEP)。我们相信,通过Pyrefly,我们可以实现更多,帮助Python开发者利用类型的优势,无论他们是开发者、库作者还是新手。

Meta从一开始就认识到类型在动态语言中的价值,并理解它们在开发者生产力和安全性方面所提供的重要优势。我们计划通过博客分享更多见解和工具,改善生态系统内的类型使用,并实施语言增强。

今天,我们发布了Pyrefly的Alpha版本。同时,我们正在积极解决待办的错误和功能,以期在这个夏天去掉Alpha标签。您的反馈对这一过程至关重要,请尝试并报告任何错误或改进建议。即使Pyrefly可能不适合您的项目,我们也希望听到您对类型的经验以及您希望在编辑器中看到的增强。

加入我们,在这段旅程中,Pyrefly将照亮您的编码挑战。祝您编程愉快!✨

有关Pyrefly的更多见解,请查看Meta科技播客的一集,其中几位团队成员分享了他们在开发Pyrefly中的经历,并讨论了其技术细节。我们最近还在PyCon美国上进行了演讲,重点讨论了通过更快的类型检查和自由线程执行实现高性能Python。

要了解更多关于Meta开源的信息,请访问我们的开源网站,订阅我们的YouTube频道,或在Facebook、Threads、X和LinkedIn上关注我们。

来源:老孙科技前沿

相关推荐