flake8插件调用black作为代码样式验证程序

flake8-black的Python项目详细描述


Released on the Python Package Index (PyPI)Released on CondaTesting with TravisCIPyPI downloadsCode style: black

简介

这是麻省理工学院授权的flake8插件 使用命令行代码格式化工具验证python代码样式 black它可以从 python包索引(pypi):

黑色,“不妥协的代码格式化程序”,通常运行来编辑 python代码与它们的编码风格相匹配,这是 PEP 8 style guide

这个插件的目的是能够从 在flake8插件生态系统中。你可以通过^{tt3}使用这个$ 预提交钩子,或者作为持续集成测试的一部分。

flake8验证代码

早期版本的flake8假定验证使用单个字符前缀 代码,这在插件生态系统中成为了冲突的问题。自从 v3.0,flake8支持较长的前缀,因此此插件使用BLK 作为它的前缀

CodeDescription (and notes)
BLK100Black would make changes.
BLK9##Internal error (various, listed below):
BLK900Failed to load file: …
BLK901Invalid input.
BLK997Invalid TOML file: …
BLK998Could not access flake8 line length setting (no longer used).
BLK999Unexpected 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配置中使用以下设置, 例如,在.flake8setup.cfgtox.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忽略它们(例如,使用excludeper-file-ignores)。

版本历史记录

VersionRelease dateChanges
v0.1.12019-08-26
  • Option to use a (global) black configuration file, contribution from Tomasz Grining.
  • New ^{tt46}$ if can’t parse ^{tt26}$ file.
  • Logs configuration files, use ^{tt48}$ or ^{tt49}$.
  • Fixed flake8 “builtins” parameter warning.
  • Now requires black 19.3b0 or later.
v0.1.02019-06-03
  • Uses main black settings from ^{tt26}$, contribution from Alex.
  • WARNING: Now ignores flake8 ^{tt51}$ setting.
v0.0.42019-03-15
  • Supports black 19.3b0 which changed a function call.
v0.0.32019-02-21
v0.0.22019-02-15
  • Document syntax error behaviour (no BLK error reported).
v0.0.12019-01-10
  • Initial public release.
  • Passes flake8 ^{tt51}$ setting to black.

开发人员

此插件位于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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在java中将字符串转换为音频输入   java如何使用Spring Boot RestTemplate解组json列表   计算机上C++ OpenCV项目转换为OpenCV Android的java步骤   Java Spring Telegraf数据表不工作   openurlconnection与connect之间的java差异?   java Solr字段搜索、通配符和转义字符   java如何使用DLFolderLocalServiceUtil类的getFolders()方法?   尝试用Java编写文件   java连续双缓冲解决方案不起作用   两个数组的Java乘积   java Jackson,如何正确编写自定义反序列化程序   java将布尔标志按一定顺序排列以获得更好的性能是否有意义   java Vaadin无缓冲网格无法关闭   java在MySQL中以同一用户身份同时从不同客户端登录安全吗?   java如何使用安卓asynchttp库   java无法在Android中使用AlarmManager停止服务   java在Hibernate的XML配置文件中指定默认值   Spring启动应用程序中的java内存SQLITE不工作   Java代码无法写入文本文件,