A linter that enforces architectural constraints on imports between Python modules.
Ruff is a linter and formatter written in Rust that reimplements rules from Flake8 and many of its plugins, isort, pyupgrade and others, and its formatter is designed to match Black's output. Many projects have replaced Flake8, isort and Black with Ruff alone. Pylint performs deeper analysis with more type inference and catches different problems, at the cost of speed and configuration. Bandit looks specifically for common security issues. pre-commit runs any of these tools automatically before each commit.
Deeper lists: awesome-flake8-extensionsawesome-python-typing
General4
complexipyRust core
Cognitive complexity analysis for Python code, written in Rust.
Git Hooks1
A framework for managing and maintaining multi-language pre-commit hooks.
Linters and Formatters6
Refactoring2
ast-grep-cliRust core
A CLI tool for structural code search, linting, and rewriting based on syntax trees.
Type Checkers4
Full-featured static type checker for Python from Microsoft, the engine behind Pylance.