为Flake8开发格式化插件¶
Flake8 允许在版本3.0.0中自定义格式化插件。让我们一起写一个插件:
from flake8.formatting import base
class Example(base.BaseFormatter):
"""Flake8's example formatter."""
pass
我们一开始就注意到,我们从 Flake8 的 BaseFormatter
班级。如果我们遵循 instructions to register a plugin 并尝试使用我们的示例格式化程序,例如。, flake8 --format=example
然后 Flake8 将失败,因为我们没有实现 format
方法。让我们下一步做。
class Example(base.BaseFormatter):
"""Flake8's example formatter."""
def format(self, error):
return 'Example formatter: {0!r}'.format(error)
说完我们就完了。显然,这不是一个非常有用的格式化程序,但是它应该突出使用Flake8创建格式化程序的简单性。如果我们想创建一个格式化程序来聚合结果并返回XML、JSON或子单元,我们也可以这样做。 Flake8 以两种方式与格式化程序交互:
它创建格式化程序并提供从配置文件和命令行解析的选项
它使用格式化程序实例并调用
handle
带着错误。
默认情况下 flake8.formatting.base.BaseFormatter.handle()
只需调用 format
方法然后 write
. 您希望为格式化目的执行的任何额外处理都应该覆盖 handle
方法。
API文档¶
-
class
flake8.formatting.base.
BaseFormatter
(options)[源代码]¶ 类定义格式化程序接口。
-
options
¶ 从配置文件和命令行解析的选项。
-
filename
¶ 如果用户指定,则为存储运行结果的路径。
-
newline
¶ 要添加到行尾的字符串。仅当指定了输出文件名时才使用此选项。
-
format
(error)[源代码]¶ 格式化Flake8报告的错误。
这种方法 must 由子类实现。
- 参数
error (flake8.style_guide.Violation) -- 这将是
Violation
.- 返回
格式化的错误字符串。
- 返回类型
-
handle
(error)[源代码]¶ 处理Flake8报告的错误。
默认为调用
format()
,show_source()
然后write()
. 若要扩展错误的处理方式,请重写此方法。- 参数
error (flake8.style_guide.Violation) -- 这将是
Violation
.
-