Writing Plugins for Flake8¶
Since Flake8 2.0, the Flake8 tool has allowed for extensions and custom plugins. In Flake8 3.0, we’re expanding that ability to customize and extend and we’re attempting to thoroughly document it. Some of the documentation in this section may reference third-party documentation to reduce duplication and to point you, the developer, towards the authoritative documentation for those pieces.
To get started writing a Flake8 plugin you first need:
An idea for a plugin
An available package name on PyPI
One or more versions of Python installed
A text editor or IDE of some kind
An idea of what kind of plugin you want to build:
Once you’ve gathered these things, you can get started.
All plugins for Flake8 must be registered via entry points. In this section we cover:
How to register your plugin so Flake8 can find it
How to make Flake8 provide your check plugin with information (via command-line flags, function/class parameters, etc.)
How to make a formatter plugin
How to write your check plugin so that it works with Flake8 2.x and 3.x
Here’s a tutorial which goes over building an ast checking plugin from scratch: