跳转到主要内容

dead简单的Python死代码检测

项目描述

build status pre-commit.ci status

dead

dead简单的Python死代码检测

安装

pip install dead

命令行界面

请查阅帮助了解最新用法

$ dead --help
usage: dead [-h] [--files FILES] [--exclude EXCLUDE] [--tests TESTS]

optional arguments:
  -h, --help         show this help message and exit
  --files FILES      regex for file inclusion, default: ''
  --exclude EXCLUDE  regex for file exclusion, default '^$'
  --tests TESTS      regex to mark files as tests, default
                     '(^|/)(tests?|testing)/'

在git仓库的根目录下运行dead实用程序。

作为pre-commit钩子

有关说明,请参阅pre-commit

示例.pre-commit-config.yaml

-   repo: https://github.com/asottile/dead
    rev: v1.5.2
    hooks:
    -   id: dead

工作原理

  1. 使用git ls-files和筛选找到仓库中的所有文件
    • 仅包括与--files正则表达式匹配的文件
    • 排除与--exclude正则表达式匹配的文件
    • 仅包括由identify识别为python的文件
    • 通过--tests正则表达式对测试文件进行分类
  2. 解析每个文件的AST
    • 搜索定义和引用
  3. 报告没有引用的事物

误报

我在这架飞机上花了大约15分钟写了这个,它远非完美,但通常能找到一些东西。以下是一些它不擅长的地方

  • 实现接口的函数通常被标记为未使用
  • 元类魔法通常被标记为未使用(枚举,模型类等)

抑制dead

# dead: disable注释将告诉dead忽略任何报告有死代码的行。

这个项目已经死了吗?

也许吧。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

dead-1.5.2.tar.gz (6.3 kB 查看哈希值)

上传

构建分发

dead-1.5.2-py2.py3-none-any.whl (6.6 kB 查看哈希值)

上传 Python 2 Python 3

由以下提供支持