mcpField
V
vulture-dead-code

vulture-dead-code

github.com/laurigates开发59323 次安装1 天前更新
代码仓库

关于 vulture-dead-code

面向 Python 开发者的死代码检测参考技能,介绍 Vulture 和 deadcode 的静态分析方式、配置与命令。帮助清理未使用代码,并将检查纳入 CI。

主要功能

  1. 01检测未使用函数、类和变量
  2. 02比较 Vulture 与 deadcode
  3. 03配置排除项与白名单
  4. 04识别不可达代码

适用场景

  1. 01清理项目中的未使用代码
  2. 02在 CI 中执行代码卫生检查
  3. 03为动态代码生成误报白名单

安装

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

$npx skills add https://github.com/laurigates/claude-plugins --skill vulture-dead-code

安装后在 Claude Code 中输入/vulture-dead-code确认已加载。

附带文件REFERENCE.md

详细介绍

Vulture 和 deadcode - 死代码检测

用于查找未使用的 Python 代码,包括函数、类、变量、导入项和属性。

何时使用此技能

在以下情况下使用此技能……在以下情况下改用其他工具……
检测未使用的函数、类和变量仅查找未使用的导入项(使用 ruff --select F401)
清理代码库中的死代码检查类型正确性(使用 basedpyright)
在 CI 中强制执行代码规范格式化代码(使用 ruff format)
为误报生成白名单运行常规 lint 检查(使用 ruff check)

概述

Vulture(成熟,基于置信度)和 deadcode(较新,基于 AST)都能检测未使用的代码,但采用的方法不同:

特性Vulturedeadcode
方法静态分析 + 置信度分数基于 AST 的检测
准确性置信度分数(60-100%)准确性高,误报较少
速度快非常快
配置白名单文件TOML 配置
成熟度成熟(2012 年)较新(2023 年及以后)
最适合大型代码库、逐步清理新项目、严格执行

安装

# Install vulture
uv add --dev vulture

# Install deadcode (newer alternative)
uv add --dev deadcode

# Install both for comparison
uv add --dev vulture deadcode

Vulture - 基于置信度的检测

基本用法
# Check entire project
vulture .

# Check specific files/directories
vulture src/ tests/

# Minimum confidence threshold (60-100%)
vulture --min-confidence 80 .

# Exclude patterns
vulture . --exclude "**/migrations/*,**/tests/*"

# Sort by confidence
vulture --sort-by-size .

# Generate whitelist of current issues
vulture . --make-whitelist > vulture_whitelist.py
配置(pyproject.toml)
[tool.vulture]
min_confidence = 80
paths = ["src", "tests"]
exclude = [
    "**/migrations/*",
    "**/__pycache__/*",
    ".venv/*"
]
ignore_decorators = [
    "@app.route",
    "@pytest.fixture",
    "@property",
    "@staticmethod",
    "@classmethod"
]
ignore_names = [
    "test_*",
    "setUp*",
    "tearDown*",
]

deadcode - 基于 AST 的检测

基本用法
# Check entire project
deadcode .

# Check specific files/directories
deadcode src/

# Verbose output
deadcode --verbose .

# Dry run (show what would be removed)
deadcode --dry-run .

# Show unreachable code
deadcode --show-unreachable .

# Generate configuration
deadcode --init
配置(pyproject.toml)
[tool.deadcode]
paths = ["src"]
exclude = [
    "tests/*",
    "**/__pycache__/*",
    "**/migrations/*",
]
ignore_names = [
    "test_*",
    "setUp",
    "tearDown",
    "main",
]
ignore_decorators = [
    "app.route",
    "pytest.fixture",
    "property",
    "staticmethod",
    "classmethod",
    "abstractmethod"
]
show_unreachable = false

如何选择工具

在以下情况下选择 Vulture……在以下情况下选择 deadcode……
大型、成熟的代码库新项目
需要基于置信度进行筛选希望减少误报
需要采用白名单文件的方式更倾向于使用 TOML 配置
动态代码(getattr、exec)需要检测不可达代码
混合使用
# Run both for comprehensive detection
vulture --min-confidence 80 .
deadcode .

Agentic 优化

场景命令
快速检查 vulturevulture --min-confidence 90 .
快速检查 deadcodedeadcode .
生成白名单vulture . --make-whitelist > vulture_whitelist.py
在 CI 中强制执行vulture --min-confidence 80 . vulture_whitelist.py
不可达代码deadcode --show-unreachable .
组合检查vulture --min-confidence 80 . && deadcode .

快速参考

Vulture 标志
标志说明
--min-confidence N最低置信度(60-100%)
--exclude PATTERN排除 glob 模式
--sort-by-size按大小对结果排序
--make-whitelist生成白名单文件
deadcode 标志
标志说明
--verbose详细输出
--dry-run显示但不修改
--show-unreachable检测不可达代码
--init生成配置
--strict严格执行模式

如需查看详细示例、高级模式和最佳实践,请参阅 REFERENCE.md。

评论

支持 Markdown