pyright-Python 静态类型检查器


这个仓库是 pyright,它是一个功能齐全、基于标准的 Python 静态类型检查器,专为高性能设计,可用于大型 Python 源代码库。以下是对该仓库的详细介绍:

主要功能

  • 静态类型检查:对 Python 代码进行静态类型检查,帮助开发者在编码阶段发现潜在的类型错误,提高代码的健壮性和可维护性。
  • 高性能:设计上考虑了性能优化,能够处理大型的 Python 代码库。

可用工具和扩展

  • 命令行工具:可以通过命令行对 Python 代码进行类型检查,详细使用说明可参考 命令行工具文档
  • VS Code 扩展:为 Visual Studio Code 提供了集成的类型检查功能,可在 VS Code 市场 中安装。

在线体验

提供了 Pyright Playground,可以在浏览器中直接尝试使用 Pyright 进行类型检查。

文档和社区支持

  • 文档:包含了安装、配置和使用的详细信息,可参考 文档页面
  • 社区讨论:如果对 Pyright 或 Python 类型注解有疑问,可以在 讨论区 提问。
  • 问题反馈:如果发现了 bug 或有功能增强的需求,可以在 pyrightpylance-release 的 issue 跟踪器中提交新问题。

代码结构

仓库的主要文件和文件夹结构如下:

.eslintignore
.eslintrc.json
.gitattributes
.gitignore
.prettierignore
.prettierrc
CONTRIBUTING.md
LICENSE.txt
README.md
SECURITY.md
lerna.json
package-lock.json
package.json
tsconfig.json
.github/
 ISSUE_TEMPLATE/
 actions/
 workflows/
packages/
 pyright-internal/
 pyright/
 vscode-pyright/
docs/
 .nojekyll
 README.md
 _navbar.md
 _sidebar.md
 build-debug.md
 builtins.md
 ci-integration.md
 command-line.md
 commands.md
 comments.md
 configuration.md
 features.md
 ...
build/
 ...
.vscode/
 ...

关键代码模块

  • CacheManager:负责管理缓存,包括缓存的注册、使用统计、清空等操作,代码位于 pyright/packages/pyright-internal/src/analyzer/cacheManager.ts
  • importStatementUtils:用于解析 Python 代码中的 importfrom ... import 语句,代码位于 pyright/packages/pyright-internal/src/analyzer/importStatementUtils.ts
  • workspaceFactory:定义了工作区的类型和创建逻辑,代码位于 pyright/packages/pyright-internal/src/workspaceFactory.ts

贡献和行为准则

  • 贡献建议:欢迎对项目进行贡献和提出建议。对于功能和复杂的 bug 修复贡献,建议先与维护者讨论再提交拉取请求。大多数贡献需要同意贡献者许可协议(CLA)。
  • 行为准则:项目采用了 Microsoft 开源行为准则,如有疑问可联系 opencode@microsoft.com