skillfed

wemake-python-styleguide

The strictest and most opinionated python linter ever

wemake-python-styleguide v1.7.1 319.1K downloads/30d#7,648 on PyPI2,890
Permissive license MIT Active released

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

A flake8 plugin that enforces strict, opinionated Python code style rules to detect complexity, bugs, and violations beyond standard linting, complementing tools like ruff and mypy.

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

pip

pip install wemake-python-styleguide

uv

uv add wemake-python-styleguide

poetry

poetry add wemake-python-styleguide

Installing wemake-python-styleguide

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.

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

Requires Python 3.10 or later and a setup.cfg configuration file to function properly.

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 — attrs, flake8, pygments
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)

Evidence: wemake_python_styleguide-1.7.1-py3-none-any.whl

Keywords: flake8, flake8-plugin, flake8-formatter, linter, wemake.services, styleguide, code quality, pycqa

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

Tags

flake8 plugin strict lintingpython code complexity checkeropinionated style guide enforcementpython code quality ruleswps linter violationsstrict python lintercode maintainability checker
flake8-plugincode-qualitylinting

More Python Modules packages