mcpField
B
basedpyright-type-checking

basedpyright-type-checking

github.com/laurigates测试与质量59326 次安装1 天前更新
代码仓库

关于 basedpyright-type-checking

面向 Python 项目的类型检查技能,介绍 Basedpyright 的安装、配置与使用,适合设置严格类型验证和类型感知编辑器支持。

主要功能

  1. 01配置不同严格度的类型检查
  2. 02逐步扩大类型检查范围
  3. 03运行监视模式和 JSON 输出
  4. 04了解 Basedpyright、Pyright 与 mypy 的区别

适用场景

  1. 01为 Python 项目设置类型检查
  2. 02逐步为旧代码引入类型标注
  3. 03在 CI 中运行类型检查

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/laurigates/claude-plugins --skill basedpyright-type-checking

安装后在 Claude Code 中输入/basedpyright-type-checking确认已加载。

附带文件REFERENCE.md

详细介绍

Basedpyright 类型检查

Basedpyright 是 Pyright 的一个分支,增加了额外功能并采用更严格的默认设置,旨在实现最高的类型安全性和性能。

何时使用此技能

在以下情况下使用此技能……在以下情况下改用其他工具……
为 Python 设置类型检查格式化代码(使用 ruff format)
配置严格的类型验证检查代码风格问题(使用 ruff check)
比较类型检查器(basedpyright 与 mypy)检测未使用的代码(使用 vulture/deadcode)
设置 LSP,以便编辑器提供类型感知支持运行测试(使用 pytest)

安装

通过 uv 安装(推荐)
# Install globally
uv tool install basedpyright

# Install as dev dependency
uv add --dev basedpyright

# Run with uv
uv run basedpyright
通过 pipx 安装
pipx install basedpyright

基本用法

# Check entire project
basedpyright

# Check specific files/directories
basedpyright src/ tests/

# Watch mode for development
basedpyright --watch

# Output JSON for tooling integration
basedpyright --outputjson

# Verbose diagnostics
basedpyright --verbose

配置

最简严格配置(pyproject.toml)
[tool.basedpyright]
typeCheckingMode = "strict"
pythonVersion = "3.12"
include = ["src"]
exclude = ["**/__pycache__", "**/.venv"]

# Basedpyright-specific strict rules
reportUnusedCallResult = "error"
reportImplicitStringConcatenation = "error"
reportMissingSuperCall = "error"
reportUninitializedInstanceVariable = "error"

类型检查模式

模式描述使用场景
off不进行类型检查遗留代码,开始迁移
basic基本类型检查逐步采用类型标注
standard标准严格程度大多数项目(Pyright 默认值)
strict严格类型检查类型安全的代码库
all最高严格程度高可信度系统
渐进式类型检查
# Start with basic mode
[tool.basedpyright]
typeCheckingMode = "basic"
include = ["src/new_module"]  # Type check new code only

# Gradually expand
include = ["src/new_module", "src/api"]

# Eventually enable strict mode
typeCheckingMode = "strict"
include = ["src"]

选择类型检查器

因素BasedpyrightPyrightmypy
速度最快最快较慢
严格程度默认设置最严格可配置可配置
LSP 支持内置内置通过 dmypy
插件系统有限有限丰富

如果希望借助更严格的默认设置和最快速度实现最高类型安全性,请选择 Basedpyright。 如果需要 Microsoft 官方支持以及兼容 VS Code Pylance,请选择 Pyright。 如果需要丰富的插件生态系统(django-stubs、pydantic-mypy),请选择 mypy。

行内错误抑制

# Inline type ignore
result = unsafe_operation()  # type: ignore[reportUnknownVariableType]

# Function-level ignore
def legacy_function():  # basedpyright: ignore
    pass

Agent 优化

场景命令
快速检查basedpyright
JSON 输出basedpyright --outputjson
监视模式basedpyright --watch
CI 检查uv run basedpyright
详细输出basedpyright --verbose

快速参考

标志描述
--watch开发用监视模式
--outputjson为工具提供 JSON 输出
--verbose详细诊断信息
--pythonversion X.Y覆盖 Python 版本
--level <mode>覆盖类型检查模式

有关详细配置选项、LSP 集成、迁移指南、CI 设置和最佳实践,请参阅 REFERENCE.md。

评论

支持 Markdown