Packages
Provides type stubs and a mypy plugin to enable static type checking of SQLAlchemy code, helping type checkers understand SQLAlchemy's dynamic features.
Compares PNG screenshots pixel-by-pixel and perceptually using Rust-accelerated algorithms, returning mismatch counts, similarity scores, diff visualizations, and spatial clustering of changes.
Integrates pydocstyle docstring checking into flake8, allowing you to enforce docstring conventions (PEP 257, numpy, google, or custom) as part of your flake8 linting workflow.
Install it if you use flake8 and want to enforce docstring conventions without adding a separate linting tool to your workflow.
Integrates isort into flake8 linting, reporting import violations as flake8 errors with configurable rules via .isort.cfg.
A flake8 plugin that detects and suggests rewrites for inefficient or redundant list, set, and dict comprehensions and related constructs.
Install it if your team values code idiomaticity and performance-conscious Python style.
Automatically rewrites Python source code to use newer syntax patterns, removing deprecated constructs and modernizing code style across set literals, comprehensions, string formatting, and class definitions.
Provides type stubs for the bleach HTML sanitization library, enabling static type checkers to validate code that uses bleach without requiring the library itself to be installed.
Provides a collection of reusable pre-commit hooks for common code quality and file validation checks, integrated with the pre-commit framework.
Validates Protocol Buffer messages against semantic rules defined in Protobuf annotations, supporting both standard field constraints and custom CEL expressions.
Install it if you're already using Protobuf and need to validate messages at runtime.
A pytest plugin that provides fixtures for safely accessing test data files organized in module-specific or shared directories, automatically copying them to temporary locations during test runs.
VizTracer traces Python code execution and generates interactive visualizations showing function calls, timing, and execution flow across threads, processes, and async code.
Install it if you need to profile or debug Python execution; the command-line interface requires no code changes for initial exploration.
A flake8 plugin that enforces import ordering and grouping according to configurable conventions, reporting violations through four warning codes.
Analyzes Python module imports statically using the ast module, without executing code, to map internal dependencies within a package or across files.
Interrogate scans a Python codebase to measure and report docstring coverage across modules, classes, functions, and methods, helping identify undocumented code.
Install it if you want to track or enforce documentation standards in your Python projects.
PuDB is a full-screen console-based visual debugger for Python that brings GUI debugger features into the terminal, letting you inspect code, variables, and stack traces with keyboard navigation.
Lintrunner orchestrates and runs multiple linters across a codebase, deciding which files need linting, invoking linters via a common protocol, and aggregating their results.
The main gotcha is the unclear license—verify it fits your project's constraints before committing.
A CLI tool for defining, validating, and testing data contracts using the Open Data Contract Standard, with support for schema validation, quality checks, and exports across multiple data platforms.
Automatically formats Python docstrings to comply with PEP 257 conventions, including proper quote usage, line breaks, and field list formatting.
Install it if your team values consistent docstring formatting or you need PEP 257 compliance automation.
Provides PEP 561 type stubs for Flask to enable static type checking with mypy, PyCharm, pytype, and similar tools.
A flake8 plugin that validates the formatting and necessity of `# noqa` comments in Python code, catching malformed comments that would be silently ignored and flagging unnecessary suppressions.
A command-line SQL formatter that automatically reformats SQL files to a consistent style, similar to Black for Python or gofmt for Go.
Analyzes Django migrations to detect backward-incompatible operations that could break older codebases, running as a management command or integration point during migration generation.
Xenon monitors Python code complexity by measuring cyclomatic complexity across your codebase and fails your build when thresholds are exceeded, typically used in CI/CD pipelines and git commit hooks.
A Pylint plugin that extends Pylint's understanding of Pydantic models, reducing false positives when linting code that uses Pydantic.
A flake8 plugin that detects print statements and pprint calls in Python code, flagging them with error codes T201, T203, and T204 for code quality enforcement.
However, the package is abandoned (last release 2022-04-30, no maintenance since), so compatibility with newer flake8 versions is not guaranteed.
Sends exceptions, errors, and log messages to Rollbar's error monitoring platform for real-time tracking and aggregation.
Install it if you want centralized error tracking and real-time alerting; skip it if you prefer self-hosted or alternative error monitoring solutions.
Provides driver plugins for molecule that enable testing across multiple infrastructure platforms including Azure, Docker, Podman, EC2, GCE, OpenStack, Vagrant, and containers.
Lizard analyzes code complexity and detects code clones across many programming languages, measuring cyclomatic complexity, lines of code, token count, and function parameters.
Evidently evaluates, tests, and monitors ML and LLM systems through reports, test suites, and a monitoring dashboard, supporting tabular data, text, and generative tasks with 100+ built-in metrics.
Lints Git commit messages against configurable style rules, checking for formatting, length, and content violations before commits are made.
However, maintenance is dormant—the last release was in March 2023.
Orchestrates multiple Python linters (black, flake8, isort, mypy) from a single configuration file, generating and running their settings automatically without managing dependency versions.
Robocop is a static code analysis tool and formatter for Robot Framework code that detects linting issues and enforces code quality standards through the official Robot Framework parsing API.
Install it if you write Robot Framework tests and want automated code quality checks and formatting; it's particularly valuable in team or CI/CD contexts.
pytest-qt is a pytest plugin that provides fixtures and utilities to test PyQt5, PyQt6, and PySide6 applications, including widget interaction simulation and signal handling.
Install it if you're testing PyQt or PySide applications and want pytest-native fixtures for widget interaction and signal handling.
ast-grep-py is a Python binding for ast-grep, a tool that searches, lints, and rewrites code using precise abstract syntax tree patterns.
Converts code coverage reports from lcov format to Cobertura XML format, enabling CI servers to aggregate and analyze coverage metrics across packages, classes, functions, and individual lines.
Provides adapter integrations for lintrunner, enabling unified execution of popular Python, Rust, and C++ linters and formatters (flake8, pylint, mypy, black, ruff, rustfmt, clippy, clang-format, and others) through a single CLI interface.
Bindep checks for missing system binary packages needed by an application or library, reading requirements from a declarative file and reporting gaps in a format suitable for package managers.
Install it if your project has non-Python system dependencies or if you need to standardize dependency setup across a team.
Provides command-line tools to format, lint, and annotate CMake listfiles, plus a utility to parse and convert ctest output to JSON or XML.
However, do not adopt it for new projects or if you rely on recent CMake features—the abandonment since August 2020 means no bug fixes or feature updates will arrive.
A coverage.py plugin that measures test coverage of Django templates, integrating template execution tracking into your coverage reports alongside Python code coverage.
Install it if you use Django templates and want to measure test coverage comprehensively.
A command-line interface for interacting with Codecov directly from your terminal or CI platform, enabling you to create commits, generate reports, and upload coverage data.
However, verify the actual license terms before use in proprietary or restricted projects, since the metadata does not declare one.