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需要一种简单的方法来创建用于排序的comparator类   java getReadableDatabase和getWriteableDatabase无法解析   查找列表<Long>中与某个元素对应的所有索引的java方法   安卓将视图添加到ViewFlipper会导致java。StackOverflowerr语言   java根据它所包含的长“curTime”类字段将N的列表拆分为24(小时)   Android N中的Java8流API   自动生成Java策略文件的安全性   垃圾收集鼓励Java中的主要GC(但不是STW GC)   java如何检查UDP服务器上侦听的客户端数量   在前一台主机被Datastax Java驱动程序关闭后,Cassandra尝试重新连接到下一台主机   java如何使用Spring Boot创建部分代理   java是否有一个网站或资源可以完全比较EJB版本   java无需使用第三方库从gradle生成输出   继承由于这个多态性的基本示例中的语法有什么不同吗?(爪哇)   java字符串数组中的空字符串   java为什么CMS中的初始标记阶段是串行的   为什么Lucene有时与InChIKeys不匹配?   安卓通知Java应用程序数据库中的更改   java如何将单个json对象值解析为按钮   java打印堆栈将运行时错误跟踪到文件