Python的高性能类型检查器
项目描述
Pyre 是一个符合 PEP 484 的 Python 性能类型检查器。Pyre 可以增量地分析包含数百万行代码的代码库 - 在开发人员编写代码时提供即时反馈。您可以在 Pyre 操场 中的示例中进行尝试。
Pyre 包含 Pysa,这是我们在 Pyre 上构建的一个以安全为重点的静态分析工具,它可以对 Python 应用程序中的数据流进行推理。有关如何开始我们的安全分析,请参阅我们的 文档。
Pysa 还可在 GitHub 商店 作为 GitHub Action 使用。
要求
要开始,您需要在您的系统上安装 Python 3.8 或更高版本 和 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
我们现在可以运行 Pyre 了
(venv) $ echo "i: int = 'string'" > test.py
(venv) $ pyre
ƛ Found 1 type error!
test.py:1:0 Incompatible variable type [9]: i is declared to have type `int` but is used as type `str`.
第一次调用将启动一个侦听文件系统更改的守护程序 - 在您对代码进行编辑时增量地进行类型检查。您会注意到后续的 pyre
调用将比第一次调用更快。
有关更详细的文档,请参阅 https://pyre-check.org。
加入 Pyre 社区
有关如何帮助的更多信息,请参阅 CONTRIBUTING.md。
许可
Pyre 采用 MIT 许可证。
项目详情
pyre-check-nightly-0.0.101728040313.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 73e7ac2c01bc890f4f40d4e3a38b0cbdb65c8be99f074989b9d45656870542a4 |
|
MD5 | c614dc2c42136f0ebaf54aac8314811e |
|
BLAKE2b-256 | 3ea68495494e5ff2fe2138cab07a4fcc6a8c246c6706126a5d8572fb0fa67e7f |
pyre_check_nightly-0.0.101728040313-py3-none-manylinux1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9d068b578fc6515dbc2259b2c5ef4e398d68858ce6f7e7f4fc696d8533978c05 |
|
MD5 | 1105e5994dff5be1f7f41c9a143bd50c |
|
BLAKE2b-256 | 2670255dd47bd5895d0f730d0edf12e5c99b273ff3e57acc06c457c7840323ed |
pyre_check_nightly-0.0.101728040313-py3-none-macosx_10_11_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 46fa1c8f3b8ac62edccbbafa840c4fc7c3e653cf76ac57c4db44e55fef5311c0 |
|
MD5 | 13f48a4cd997a8b63f978e550a4bb7cf |
|
BLAKE2b-256 | 0e4036a1a084d6afe34393a62db5ccf9aabf1d93bf65caafdeeb254e2ede70a4 |