Skip to main content

dead simple python dead code detection

Project description

Build Status Azure DevOps coverage

dead

dead simple python dead code detection

installation

pip install dead

cli

Consult the help for the latest usage:

$ 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)/'

run the dead utility from the root of a git repository.

as a pre-commit hook

See pre-commit for instructions

Sample .pre-commit-config.yaml:

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

how it works

  1. find all files in a repository using git ls-files and filtering:
    • only include files matched by the --files regex
    • exclude files matched by the --exclude regex
    • only include files identified as python by identify
    • classify test files by the --tests regex
  2. ast parse each file
    • search for definitions and references
  3. report things which do not have references

false positives

I wrote this in ~15 minutes on an airplane, it's far from perfect but often finds things. Here's a few things it's not good at:

  • functions which implement an interface are often marked as unused
  • metaclass magic is often marked as unused (enums, model classes, etc.)

suppressing dead

The # dead: disable comment will tell dead to ignore any line which has reportedly dead code.

is this project dead?

maybe.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dead-1.3.0.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

dead-1.3.0-py2.py3-none-any.whl (6.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file dead-1.3.0.tar.gz.

File metadata

  • Download URL: dead-1.3.0.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.9

File hashes

Hashes for dead-1.3.0.tar.gz
Algorithm Hash digest
SHA256 3d69d5ba5f8545a17815f638f9dd73797189edb6458c8f68964c92eaea552f84
MD5 bd2600ee61dc13743268c5c24d533a69
BLAKE2b-256 1800a7ec783912f1481e00ff6c3cdc8ba6f77ca53979f4a0831632b3aeeaf4d9

See more details on using hashes here.

File details

Details for the file dead-1.3.0-py2.py3-none-any.whl.

File metadata

  • Download URL: dead-1.3.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.9

File hashes

Hashes for dead-1.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8d35258ef1ba8bc73b57af9924bea9b855413f7ddc70223c85a75277a9f5e53d
MD5 45a8d929542551d12445ebb965ee03e5
BLAKE2b-256 badc8a7eb9c808b2cdf204a8ab62a6e01f23fbcccbea8710402c71620bb08874

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page