Skip to main content

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.

Metadata

Release files for dont-be-lazy 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dont-be-lazy 0.1.2
File Size Uploaded
dont_be_lazy-0.1.2.tar.gz 70.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dont-be-lazy 0.1.2
File Interpreter ABI Platform
dont_be_lazy-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 120.8 kB

Release files / dont_be_lazy-0.1.2.tar.gz

Download URL dont_be_lazy-0.1.2.tar.gz
Size 70.0 kB
Tags Source
SHA-256 checksum
How to use checksums
cde4c20f8b11efd6dc0142dc8464c1968412e5bb7acafc38703aa1491df7cbba
BLAKE2b-256 checksum
How to use checksums
867b5dda8c9e44562e009f5c413ae8bfffadf634f82237d49fd70b3674daf15f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 5, 2026.

Transparency log

Release files / dont_be_lazy-0.1.2-py3-none-any.whl

Download URL dont_be_lazy-0.1.2-py3-none-any.whl
Size 50.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
47b45d3eea83be5f7cae74bc9a9a754bece985b1e1e17184ec623501d2ea2ec3
BLAKE2b-256 checksum
How to use checksums
686d6a334fb3f71923133e3d0fc76e26eb37671dcdae3e5450bdeda5b2232ad8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page