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
- flake8.plugins.finder.parse_plugin_options(cfg, cfg_dir, *, enable_extensions, require_plugins)[source]
Parse plugin loading related options.
- Parameters:
cfg (RawConfigParser) –
cfg_dir (str) –
enable_extensions (str | None) –
require_plugins (str | None) –
- Return type:
PluginOptions
- flake8.plugins.finder.find_plugins(cfg, opts)[source]
Discovers all plugins (but does not load them).
- Parameters:
cfg (RawConfigParser) –
opts (PluginOptions) –
- Return type:
List[Plugin]
- flake8.plugins.finder.load_plugins(plugins, opts)[source]
Load and classify all flake8 plugins.
first: extends
sys.pathwithpaths(to import local plugins)next: converts the
Plugin``s to ``LoadedPluginsfinally: classifies plugins into their specific types
- Parameters:
plugins (List[Plugin]) –
opts (PluginOptions) –
- Return type:
Plugins