wemake-python-styleguide
The strictest and most opinionated python linter ever
Decision gist · record as of 2026-08-14
Yes. The package is actively maintained, has no security vulnerabilities, low install friction, and permissive licensing. Install it if your team values strict code consistency and wants to catch complexity and bugs beyond what ruff or mypy provide. Skip it if you prefer minimal linting rules or find opinionated enforcement restrictive—rules can be disabled selectively, but the philosophy is strict by design.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later and a setup.cfg configuration file to function properly.
- Low friction install with only three runtime dependencies (attrs, flake8, pygments).
- Actively maintained with a release 14 days ago and ongoing commits; 2890 GitHub stars indicate established community adoption.
License · maintenance · safety
MIT (permissive) — MIT license permits commercial and private use with minimal restrictions, making it suitable for most projects without legal concerns.
last release 2026-07-31 (14 days) · last repo commit 2026-08-14 · 2,890 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 319,116 downloads/mo, #7,648 on PyPI
Alternatives
Verify before relying
pip install wemake-python-styleguide
# Create setup.cfg with configuration, then:
flake8 your_module.py --select=WPS- How many distinct rule violations the plugin detects (the fact sheet mentions error codes exist in docs but not the count)
- Whether the setup.cfg configuration requirement is a significant adoption barrier for new users
- Performance impact on large codebases compared to ruff or standard flake8
What it is and what it does
wemake-python-styleguide is a flake8 plugin that adds a comprehensive set of strict, opinionated linting rules on top of flake8's baseline checks. It focuses on three goals: reducing code complexity and improving maintainability, enforcing a single obvious way to write Python code, and protecting developers from common errors and best-practice violations. The plugin detects bugs, complex code patterns, and style violations that standard flake8 or ruff alone may miss, and is designed to work alongside ruff for formatting and mypy for type checking rather than replace them.
You run it as part of your normal flake8 workflow by selecting the WPS rule prefix. It requires a setup.cfg configuration file and supports modern Python versions (3.10 through 3.14). The package is actively maintained, has no known security vulnerabilities, and is used by thousands of developers monthly. It's particularly useful in teams where code consistency and maintainability are priorities, and can be integrated into CI/CD pipelines including GitHub Actions.
Use it for
- Enforce consistent code style across a team by catching complexity and anti-patterns that ruff or mypy don't address
- Reduce code review friction by automatically flagging violations before human review, ensuring familiar patterns throughout the codebase
- Train LLMs or junior developers on idiomatic Python by using the linter as a teaching tool for best practices
- Detect potential bugs and maintainability issues in legacy codebases before they become problems
- Integrate into CI/CD pipelines (including GitHub Actions) to gate commits on strict style compliance
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The package is actively maintained, has no security vulnerabilities, low install friction, and permissive licensing. Install it if your team values strict code consistency and wants to catch complexity and bugs beyond what ruff or mypy provide. Skip it if you prefer minimal linting rules or find opinionated enforcement restrictive—rules can be disabled selectively, but the philosophy is strict by design.
Install
wemake-python-styleguide on PyPI
Before you install
Low friction install with only three runtime dependencies (attrs, flake8, pygments). Actively maintained with a release 14 days ago and ongoing commits; 2890 GitHub stars indicate established community adoption.
Requires Python 3.10 or later and a setup.cfg configuration file to function properly.
License in practice
MIT license permits commercial and private use with minimal restrictions, making it suitable for most projects without legal concerns.
Quickstart
pip install wemake-python-styleguide
# Create setup.cfg with configuration, then:
flake8 your_module.py --select=WPS
Verify before relying
- How many distinct rule violations the plugin detects (the fact sheet mentions error codes exist in docs but not the count)
- Whether the setup.cfg configuration requirement is a significant adoption barrier for new users
- Performance impact on large codebases compared to ruff or standard flake8
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release <4.0,>=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesattrsflake8pygments |
| Maintenance | Actively maintained 14 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 319,116 / month, #7,648 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableEnvironment :: ConsoleFramework :: Flake8Intended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Software Development :: Libraries :: Python ModulesTopic :: Software Development :: Quality AssuranceTyping :: Typed |
Evidence: wemake_python_styleguide-1.7.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “flake8 plugin strict linting”
- wemake-python-styleguideA flake8 plugin that enforces strict, opinionated Python code style…
- flake8-type-checkingA flake8 plugin that identifies which imports should be moved into or…
- flake8-jsonA Flake8 plugin that formats linting output as JSON, with options for…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also flake8-broken-line · hacking · flake8-executable · flake8-html · flake8-django · flake8 · flake8-pytest-style · dlint · flake8_simplify · flake8-copyright