Pylint
A static code analyser for Python that catches bugs and enforces coding standards
Repository Health
Technical Analysis
Pylint is a static code analysis tool for Python that inspects your source code without executing it, looking for programming errors, enforcing a coding standard, and flagging code smells. Unlike simpler linters, Pylint performs deep type inference through its companion library astroid, letting it catch mistakes that purely syntactic tools miss — at the cost of being slower than lightweight alternatives.
Pylint has been maintained by the Python Code Quality Authority (PyCQA) community since 2003 and ships as both a standalone CLI and an extensible framework: teams write custom checkers for internal conventions, and a large ecosystem of third-party plugins (pylint-django, pylint-pydantic, and others) extends it to popular frameworks.
What You Get
- A CLI (
pylint) that scores a codebase 0-10 and reports categorized messages (errors, warnings, refactors, conventions) - Deep type and value inference via astroid, catching bugs plain AST-based linters can’t see
- A plugin architecture for framework-specific and organization-specific custom checkers
- pyreverse, a bundled tool that generates UML class and package diagrams from Python code
- symilar, a bundled duplicate-code detector also integrated into the main lint run
- Fine-grained per-message configuration and inline disable comments for incremental adoption
Common Use Cases
- Enforcing a consistent coding standard across a team or open-source project in CI
- Catching latent bugs (undefined names, wrong arg counts, unreachable code) before code review
- Gradually introducing linting to a legacy codebase via
--errors-onlythen progressively re-enabling convention/refactor checks - Generating architecture diagrams of an existing codebase with the bundled pyreverse tool
- Writing custom checkers to enforce internal libraries’ usage conventions
Under The Hood
Architecture - Pylint is organized around a PyLinter orchestrator (in pylint/lint) that walks an astroid AST of the target modules and dispatches nodes to a registry of independent checkers (design, imports, exceptions, typecheck, etc. under pylint/checkers), each contributing messages through a shared reporters layer that renders text, JSON, or other output formats; a separate config package handles the layered pylintrc/toml/CLI configuration resolution, and pyreverse/symilar live as standalone entry points reusing the same astroid-based parsing.
Tech Stack - Pure Python 3.10+, with astroid (a sister PyCQA project) doing all static inference of types and values, isort and mccabe vendored in for import-order and complexity checks, tomlkit/tomli for config parsing, and dill for caching inference results across runs; packaging uses a standard pyproject.toml/setuptools build with no compiled extensions.
Code Quality - The project has an unusually large test suite (1,274+ test files) covering individual checkers, functional test fixtures with expected-message assertions, and regression tests for prior bugs; the codebase is fully typed (Typing :: Typed classifier, py.typed marker) and enforces its own style using pylint on itself, with CI running the full suite across supported Python versions via GitHub Actions and pre-commit.ci.
API Design - As a CLI tool the primary interface is command-line flags and pylintrc/toml configuration keys, which is idiomatic for its category (mirrors flake8, ruff) though the sheer number of configurable messages raises the learning curve for newcomers; the plugin API (register() hooks, BaseChecker subclassing) is stable and well-documented, letting third parties add checkers without touching pylint core.
Used by 5 apps in this directory
ClickHouse
Databases · Analytics · Data Engineering
Open-source column-oriented database that delivers real-time analytical queries on petabyte-scale data with millisecond latency.
Docs
File Storage · CMS
Open-source collaborative knowledge platform with real-time editing, AI writing tools, and full self-hosting control — built by the French and German governments.
Flagsmith
Developer Tools · Devops · Ab Testing Experimentation
Open-source feature flagging, remote config, and A/B/multivariate testing platform for web, mobile, and server-side apps — self-host or use the hosted SaaS.
OpenBB
Databases · Analytics · Invoicing Finance
The AI Workspace for Finance: Connect Data, Run AI Agents, Build Analytics
OSV.dev
Security
Google's open-source vulnerability database that maps CVEs to exact package versions across 50+ ecosystems with a public API and data dumps.