效用函数¶
Flake8 有一些内部使用的实用函数。
警告
正如文件中所暗示的,这些都是 内部的 效用函数。它们的签名和返回类型可能在不同版本之间更改,恕不另行通知。
报告了这些错误 内部的 功能将立即关闭。
如果插件开发人员需要函数,那么可以在bug tracker中请求它们,并在仔细考虑之后 may 添加到 文件化的 稳定的API。
-
flake8.utils.
parse_comma_separated_list
(value, regexp=re.compile('[,\\s]'))[源代码]¶ 分析逗号分隔的列表。
- 参数
value -- 要分析和规范化的字符串。
regexp (_sre.SRE_Pattern) -- 当值是字符串时,用于拆分该值的已编译正则表达式。
- 返回
删除空白的值列表。
- 返回类型
parse_comma_separated_list()
取一个字符串
"E121,W123,F904"
"E121,\nW123,\nF804"
" E121,\n\tW123,\n\tF804 "
" E121\n\tW123 \n\tF804"
并将其转换为如下所示的列表
["E121", "W123", "F904"]
此函数有助于规范化任何类型的逗号分隔输入或 Flake8 可能会收到。这在利用 Flake8 的附加参数 Option
.
此实用程序接受表示路径的字符串,如果字符串具有 /
在里面。它还删除了尾随 /
S
此函数利用 normalize_path()
规范化一系列路径。看到了吗 normalize_path()
用于定义规范化路径的内容。
此函数用于检索和缓存上提供的值 sys.stdin
. 这允许插件使用它来检索 stdin
如有必要。
这提供了一个方便且显式命名的函数,用于检查当前是否在Windows(或 nt
)操作系统。
另一个很有用的函数,它只被命名为显式的,它是一个非常简单的检查,它检查用户是否指定了 -
在他们对 Flake8 以表明我们应该读stdin。
-
flake8.utils.
filenames_from
(arg, predicate=None)[源代码]¶ 从参数生成文件名。
- 参数
arg (str) -- 命令行中的参数。
predicate (callable) -- 用于筛选文件名的谓词。如果谓词返回
True
我们将排除文件名,否则我们将返回它。默认情况下,我们包含生成的每个文件名。
- 返回
路径生成器
当提供一个论据给 Flake8 ,我们需要能够以方便的方式遍历目录。例如,如果有人跑了
$ flake8 flake8/
然后他们要我们检查目录中的所有文件 flake8/
. 此函数将处理此问题,同时也处理指定文件的情况,例如:
$ flake8 flake8/__init__.py
-
flake8.utils.
fnmatch
(filename, patterns)[源代码]¶ 包裹
fnmatch.fnmatch()
添加一些功能。
标准类库 fnmatch.fnmatch()
非常擅长判断文件名是否与单一模式匹配。然而,在我们的用例中,我们通常有一个模式列表,并想知道文件名是否与其中任何一个匹配。这个函数用一点额外的逻辑抽象出那个逻辑。
-
flake8.utils.
parameters_for
(plugin)[源代码]¶ 返回插件的参数。
这将检查插件,如果插件是函数,则返回函数参数或的参数
__init__
之后self
如果插件是类。- 参数
plugin (flake8.plugins.manager.Plugin) -- 内部插件对象。
- 返回
将参数名映射到是否需要参数名的字典(也称为位置字典/没有默认值)。
- 返回类型
Flake8 分析插件的参数,以确定它们期望的输入。插件可能会出现以下情况之一:
physical_line
接收文件中显示的行logical_line
接收逻辑行(与文件中显示的不同)tree
接收文件的抽象语法树(AST)
我们还分析了其余的参数,以便为插件提供更多细节。此函数将以一致的方式返回Python版本中的参数,并处理用作插件的类和函数。此外,如果插件是一个类,它将剥离 self
参数,以便我们可以一致地检查插件的参数。
处理…的用法 flake8 --diff
, Flake8 需要能够解析diff中的文件名以及指示已更改部分的范围。此函数要么接受diff作为参数,要么从中的标准中读取diff。然后它返回一个字典,其中文件名作为键,行号集作为值。