flake8插件调用black作为代码样式验证程序
flake8-black的Python项目详细描述
简介
这是麻省理工学院授权的flake8插件 使用命令行代码格式化工具验证python代码样式 black它可以从 python包索引(pypi):
黑色,“不妥协的代码格式化程序”,通常运行来编辑 python代码与它们的编码风格相匹配,这是 PEP 8 style guide。
这个插件的目的是能够从 在flake8插件生态系统中。你可以通过^{tt3}使用这个$ 预提交钩子,或者作为持续集成测试的一部分。
flake8验证代码
早期版本的flake8假定验证使用单个字符前缀 代码,这在插件生态系统中成为了冲突的问题。自从 v3.0,flake8支持较长的前缀,因此此插件使用BLK 作为它的前缀
Code | Description (and notes) |
BLK100 | Black would make changes. |
BLK9## | Internal error (various, listed below): |
BLK900 | Failed to load file: … |
BLK901 | Invalid input. |
BLK997 | Invalid TOML file: … |
BLK998 | Could not access flake8 line length setting (no longer used). |
BLK999 | Unexpected exception. |
注意,如果您的Python代码有语法错误,black --check ...将 将此报告为错误。同样,flake8 ...将在默认情况下报告 语法错误,但重要的是它似乎不会调用插件,所以 您将not得到一个额外的BLKerror。
安装
运行black需要python 3.6或更高版本,因此建议这样做,但是 black可用于为旧版本python编写的python代码。
您可以使用pip安装flake8-black,它应该安装flake8 以及black如果尚未出现:
$ pip install flake8-black
或者,如果您使用的是水蟒包装系统,请执行以下操作 命令将安装插件及其依赖项:
$ conda install -c conda-forge flake8-black
当使用flake8时,应该自动包括新的验证器 现在可以报告以BLK(定义)开头的其他验证代码 以上)。例如:
$ flake8 example.py
您可以使用:
$ flake8 --select BLK example.py
配置
我们假设您熟悉flake8 configuration并且 black configuration
建议在flake8配置中使用以下设置, 例如,在.flake8、setup.cfg或tox.ini文件中:
[flake8] # Recommend matching the black line length (default 88), # rather than using the flake8 default of 79: max-line-length = 88 extend-ignore = # See https://github.com/PyCQA/pycodestyle/issues/373 E203,
注意当前pycodestyle在空格^{tt8}上给出误报$ 用于切片,flake8报告为E203: whitespace before ':'。 直到pyflakes issue 373 已修复,并且flake8已更新,建议禁用此样式检查。
单独的pyproject.toml用于black配置-如果 找到文件后,插件将查看以下black设置:
- target_version
- skip_string_normalization
- line_length
您可以为pyproject.toml文件指定一个特定的路径(例如。 全局开发设置)在 命令行,或者在^{tt2}中使用black-config = FILENAME。$ 配置文件。
忽略验证代码
不建议使用flake8 no quality assurance pragma注释 (例如,将# noqa: BLK100添加到第一行黑色将改变)。 而是在开头使用黑色pragma注释# fmt: off,然后 # fmt: on在代码的任何不应该是 改变。或者,按名称排除整个文件(见下文)。
忽略文件
插件当前不考虑设置include 以及exclude,因此如果您有某些不使用的python文件 使用black并告诉它忽略,您将还需要告诉 flake8忽略它们(例如,使用exclude或per-file-ignores)。
版本历史记录
Version | Release date | Changes |
v0.1.1 | 2019-08-26 |
|
v0.1.0 | 2019-06-03 |
|
v0.0.4 | 2019-03-15 |
|
v0.0.3 | 2019-02-21 |
|
v0.0.2 | 2019-02-15 |
|
v0.0.1 | 2019-01-10 |
|
开发人员
此插件位于github上的https://github.com/peterjc/flake8-black
要在本地和TravisCI上进行测试后发布新版本,请执行以下操作:
$ git tag vX.Y.Z $ python setup.py sdist --formats=gztar $ twine upload dist/flake8-black-X.Y.Z.tar.gz $ git push origin master --tags
PyPI上传应该触发一个自动拉取请求,更新 flake8-black conda-forge recipe。