Plugin Handling

Plugin Management

Flake8 3.0 added support for other plugins besides those which define new checks. It now supports:

  • extra checks

  • alternative report formatters

Default Plugins

Finally, Flake8 has always provided its own plugin shim for Pyflakes. As part of that we carry our own shim in-tree and now store that in flake8.plugins.pyflakes.

Flake8 also registers plugins for pycodestyle. Each check in pycodestyle requires different parameters and it cannot easily be shimmed together like Pyflakes was. As such, plugins have a concept of a “group”. If you look at our setup.py you will see that we register pycodestyle checks roughly like so:

pycodestyle.<check-name> = pycodestyle:<check-name>

We do this to identify that <check-name>> is part of a group. This also enables us to special-case how we handle reporting those checks. Instead of reporting each check in the --version output, we only report pycodestyle once.

API Documentation