Skip to main content

Tool that finds evidence of past skipped linting

Project description

Dont Be Lazy

Dont Be Lazy scans a repository for lint, type-checking, security, formatting, coverage, and test suppressions that were probably meant to be temporary and then forgotten. It helps teams find blanket ignores, stale skips, config-level exclusions, and other "we'll clean this up later" decisions before they become permanent.

What it can find

  • Inline suppressions such as # noqa, # type: ignore, # nosec, # nosemgrep, # fmt: off, and skipped tests.
  • Config-level suppressions such as ignored rules, per-file ignores, and excluded paths.
  • Risky patterns like file-wide ignores, blanket suppressions, non-strict xfail, and vulnerability audit ignores.
  • Age and ownership signals using git blame, git history, and baseline files.

Installation

pipx install dont_be_lazy

Or with pip:

pip install dont_be_lazy

For local development:

git clone https://github.com/matthewdeanmartin/dont_be_lazy.git
cd dont_be_lazy
uv sync --all-extras

Quick usage

Show the CLI:

dont_be_lazy --help

Scan a repository:

dont_be_lazy scan .

Focus on higher-risk suppressions:

dont_be_lazy scan . --risk high

Summarize findings by tool:

dont_be_lazy summary . --by tool

Find stale suppressions with git history:

dont_be_lazy stale . --older-than 180d --with-git-history

Create and check a baseline:

dont_be_lazy baseline create . --output .dont-be-lazy-baseline.json
dont_be_lazy baseline check . --baseline .dont-be-lazy-baseline.json

Review active policy rules:

dont_be_lazy rules list
dont_be_lazy rules test .

Export machine-readable output:

dont_be_lazy scan . --format sarif --output dont-be-lazy.sarif

Commands

Command Purpose
scan Find suppressions in code and config files.
summary Show grouped counts by tool, kind, scope, owner, age, or risk.
list Show supported tools, checks, and known suppression patterns.
config-suppressions Scan config-file-level ignores and exclusions.
stale Find old suppressions using a time threshold plus optional git metadata.
owners Group suppressions by git blame author, email, team, or path.
explain Explain one suppression by path:line or DBL identifier.
baseline Create, check, and prune accepted suppressions over time.
rules List policy rules and test current findings against them.

Output formats

scan supports table, json, jsonl, markdown, and sarif. Other commands support the subset that fits their output, so it can plug into terminal workflows, CI logs, dashboards, and code-scanning tools.

Documentation

License

MIT — see LICENSE.

Changelog

See CHANGELOG.md.

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

dont_be_lazy-0.1.2.tar.gz (70.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dont_be_lazy-0.1.2-py3-none-any.whl (50.8 kB view details)

Uploaded Python 3

File details

Details for the file dont_be_lazy-0.1.2.tar.gz.

File metadata

  • Download URL: dont_be_lazy-0.1.2.tar.gz
  • Upload date:
  • Size: 70.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for dont_be_lazy-0.1.2.tar.gz
Algorithm Hash digest
SHA256 cde4c20f8b11efd6dc0142dc8464c1968412e5bb7acafc38703aa1491df7cbba
MD5 65fd63fb8d0820d87cba93066d10644b
BLAKE2b-256 867b5dda8c9e44562e009f5c413ae8bfffadf634f82237d49fd70b3674daf15f

See more details on using hashes here.

Provenance

The following attestation bundles were made for dont_be_lazy-0.1.2.tar.gz:

Publisher: publish_to_pypi.yml on matthewdeanmartin/dont_be_lazy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dont_be_lazy-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: dont_be_lazy-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 50.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for dont_be_lazy-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 47b45d3eea83be5f7cae74bc9a9a754bece985b1e1e17184ec623501d2ea2ec3
MD5 ecd78f1c228e74af69a811ae7d028809
BLAKE2b-256 686d6a334fb3f71923133e3d0fc76e26eb37671dcdae3e5450bdeda5b2232ad8

See more details on using hashes here.

Provenance

The following attestation bundles were made for dont_be_lazy-0.1.2-py3-none-any.whl:

Publisher: publish_to_pypi.yml on matthewdeanmartin/dont_be_lazy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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