
Performant type-checking for python.
[!WARNING]
此仓库已存档
此仓库不再维护,已存档。
- 类型检查: Pyre 已被 Pyrefly 取代,这是我们的下一代 Python 类型检查器和语言服务器。
- 安全分析(Pysa): Pysa 已迁移至独立仓库 github.com/facebook/Pysa。如果您正在寻找 Pysa,请前往该处。
Pyre 是一个高性能的 Python 类型检查器,符合 PEP 484 标准。Pyre 能够增量分析数百万行代码的代码库,在开发者编写代码时提供即时反馈。请参阅我们的文档以快速上手。
Pyre 内置了 Pysa,这是一个基于 Pyre 构建的安全导向静态分析工具,能够推理 Python 应用程序中的数据流。Pysa 现已迁移至独立仓库 github.com/facebook/Pysa — 请前往该处获取最新版本并开始使用我们的安全分析功能。
Pysa 也可在 GitHub Marketplace 上作为 GitHub Action 使用
开始前,你需要在系统上安装 Python 3.9 或更高版本 和 watchman。在 MacOS 上,你可以通过 homebrew 一次性安装所有依赖:
$ brew install python3 watchman
在 Ubuntu、Mint 或 Debian 上,使用 apt-get 和 homebrew:
$ sudo apt-get install python3 python3-pip python3-venv
$ brew install watchman
我们在 Ubuntu 18.04.5 LTS、CentOS 7 以及 OSX 10.11 及更高版本上测试了 Pyre。
首先创建一个空的项目目录并设置虚拟环境:
$ mkdir my_project && cd my_project
$ python3 -m venv ~/.venvs/venv
$ source ~/.venvs/venv/bin/activate
(venv) $ pip install pyre-check
接下来,告诉 Pyre 关于我们新项目的配置:
(venv) $ pyre init
该命令会在项目目录中为 Pyre(.pyre_configuration)和 watchman(.watchmanconfig)设置配置文件。暂时接受默认值——必要时可以稍后更改。
现在可以运行 Pyre 了:
(venv) $ echo "i: int = 'string'" > test.py
(venv) $ pyre
ƛ 发现 1 个类型错误!
test.py:1:0 不兼容的变量类型 [9]:i 被声明为 `int` 类型,但用作 `str` 类型。
首次启动将开启一个守护进程监听文件系统变化——当你在编辑代码时,它会增量地对项目进行类型检查。你会发现后续对 pyre 的调用比第一次更快。
更多详细文档,请参见 https://pyre-check.org。
请参阅 CONTRIBUTING.md 了解如何提供帮助。
Pyre 采用 MIT 许可证授权。