finds.dev← search

// the find

asottile/yesqa

★ 263 · Python · MIT · updated Jul 2026

Automatically remove unnecessary `# noqa` comments

yesqa finds and removes `# noqa` comments that aren't actually suppressing anything — because you fixed the code, changed your config, or added the comment by mistake. It's a pre-commit hook companion to flake8 that keeps your noqa annotations honest.

Solves a real drift problem: noqa comments accumulate over time and become lies, masking future violations. Pre-commit integration means it runs automatically at commit time with zero ceremony. It respects flake8 plugins via `additional_dependencies`, so it knows about your actual rule set, not just core flake8. asottile maintains a lot of the flake8 ecosystem, so this isn't abandoned glue code.

Only works with flake8 — if your project uses ruff, pylint, or any other linter, this does nothing for you. 263 stars after years of existence suggests limited adoption, which tracks given ruff has largely eaten flake8's market. Single-file implementation (`yesqa.py`) means no extension points if you need custom behavior. No support for inline `# type: ignore` cleanup, which is the analogous problem in mypy workflows.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →