Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.

Awesome Flake8 Extensions Awesome

A curated list of awesome flake8 extensions.

Inspired after reading a post.



Extensions with more than 20 rules inside.


Extensions for finding possible bugs.

Clean code

Extensions for finding stylistic issues and enforcing consistent codestyle.


Extensions banning specific Python features.


Extensions for checking names of variables, functions, etc.


Extensions for ensuring low code complexity.


Extensions for checking comments.

  • flake8-ado - Check that all Azure DevOps IDs mentioned in the comments are in the correct format and have the corresponding ADO item.
  • flake8-author - Checks Python modules for __author__ attributes.
  • flake8-coding - Adds coding magic comment checks (coding:) to flake8.
  • flake8-comments - Reports redundant comments.
  • flake8-copyright - Adds copyright checks to flake8.
  • flake8-eradicate - Plugin to find commented out or dead code.
  • flake8-executable - Plugin for checking executable permissions and shebangs.
  • flake8-fixme - Check for FIXME, TODO and other temporary developer notes.
  • flake8-jira-todo-checker - Check that every TODO comment has a valid JIRA issue ID next to it.
  • flake8-noqa - Validate # noqa comments.
  • flake8-ownership - Checker for assuring that author, copyright, and license are specified in source files.
  • flake8-todo - Check for TODO notes.
  • flake8-todos - Lint TODO comments to be consistent and have an issue linked.


Extensions for checking docstrings.


Tools empowering flake8.

  • flake8-codes - CLI tool to introspect flake8 plugins and their codes.
  • flake8-pyproject - Flake8 plug-in loading the configuration from pyproject.toml.
  • flake8-pyprojecttoml - Adds support for reading flake8 config from pyproject.toml.
  • flake8-ruler - More powerful configs for flake8.
  • flakehell - Wrapper to make it nice, legacy-friendly, and configurable.
  • flakes - Web list of flake8 plugins and their codes, a wrapper around flake8-codes.
  • nitpick - Enforce the same lint configuration (flake8, isort, mypy, pylint) across multiple Python projects.
  • wps-playground - Online playground for wemake-python-styleguide.
  • yesqa - A tool to automatically remove unnecessary # noqa comments.


Extensions for checking import statements.


Extensions for testing.

  • flake8-aaa - Lints tests against the Arrange Act Assert pattern.
  • flake8-assertive - Unittest assert method checker.
  • flake8-mock - Provides checking mock non-existent methods.
  • flake8-mock-spec - Enforce the use of the spec argument on mocks ensuring that your use of mocks is compliant with the interface of the object being mocked.
  • flake8-pytest-style - Checks for common style issues or inconsistencies with pytest-based tests.
  • flake8-pytest - Enforces to use pytest-style assertions.
  • flake8-pytestrail - Checks TestRail test case IDs.

Type annotations

Extensions for type annotations.

Library-specific checks

Extensions for linting usage of specific libraries.


Extensions for running flake8 not only on Python files.

  • flake8-markdown - Lints Python code blocks in Markdown files using flake8.
  • flake8-nb - Runs flake8 on *.ipynb (jupyter notebook) files.
  • flake8-pyi - Plugin for Flake8 that provides specializations for type hinting stub files.
  • flake8-rst - Checks on code in *.rst files or in docstrings.
  • jupyterlab-flake8 - Jupyterlab python linter for notebooks and text files using flake8.


Wrappers around other tools making it possible to use them with flake8.


Extensions for formatting flake8 output.