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)
| File | Size | Uploaded | |
|---|---|---|---|
| dont_be_lazy-0.1.2.tar.gz | 70.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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