跳转到主要内容

Pants项目和其用户使用的各种Flake8代码检查。

项目描述

flake8-pantsbuild

此Flake8插件提供了一些Pants项目和其用户使用的自定义代码检查。

目录

安装

如果与Pants一起使用,请将以下内容添加到您的pants.toml

[GLOBAL]
backend_packages2.add = ["pants.backend.python.lint.flake8"]

[flake8]
extra_requirements.add = ["flake8-pantsbuild"]

如果在不使用Pants的情况下使用Flake8,请使用以下命令安装

$ pip install flake8-pantsbuild

支持的Python版本

此插件与Python 3.6+兼容。

如果您需要支持 Python 2.7 或 Python 3.5,请安装 flake8-pantsbuild==1.* 并参考 https://github.com/pantsbuild/flake8-pantsbuild/blob/1.x/README.md 中的 README。

用法

如果与 Pants 一起使用,请像往常一样运行 ./pants lint file.py

如果不使用 Pants,请像往常一样运行 flake8 file.py

错误代码

错误代码 描述 备注
PB10 使用破坏继承的类属性
PB11 在逻辑运算符的左侧使用常量
PB12 在 and 运算符的右侧使用常量
PB13 使用 open 而不使用 with 语句(上下文管理器)
PB20 检查 2 个空格缩进 默认禁用¹
PB30 使用斜杠而不是括号进行行续行 默认禁用²

¹ 要启用 PB20 缩进 lint,请设置 --enable-extensions=PB20。您需要通过 --extend-ignore=E111 禁用 E111(检查 4 个空格缩进)。您可能还想禁用 E121E124E125E127E128

² 要启用 PB30 后续斜杠 lint,请设置 --enable-extensions=PB30

lint.pythonstyle迁移到flake8

lint.pythonstyle 是来自 pants.contrib.python.checks 插件的自定义 Pants 任务,其行为类似于 Flake8,但通常不如更受欢迎的 Flake8。

工具之间的区别

Pants 的 lint.pythonstyle 任务运行 pycodestylepyflakes,并提供几个自定义 lint。

相比之下,Flake8 运行 pycodestylepyflakes,但它还使用 mccabe 检查代码中的复杂部分,并且它 添加了自己的 lint。Flake8 默认不包含任何自定义 lint.pythonstyle lint,但下表显示了如何保留您想要的任何 lint。

Flake8 有数百个插件,您可以轻松将其添加到 Pants 中。请参阅 Awesome Flake8 Extensions 以获取插件的精选列表。

迁移步骤

首先,按照 安装说明 将 Flake8 连接到 Pants。然后,通过从您的 pants.toml 中删除 pants.contrib.python.checks 来禁用 lint.pythonstyle

然后,通过运行 ./pants lint file.py 运行 Flake8(请参阅 用法)。

您第一次运行 ./pants lint 时,可能会因为与 lint.pythonstyle 的差异而有几个错误。我们建议首先在 禁用 这些错误的一个 .flake8 配置文件。将此添加到您的 pants.toml 以确保 Pants 使用该配置

[flake8]
config = "path/to/.flake8"

如果您想保留来自 lint.pythonstyle 的任何自定义 lint,请参阅下表。您需要通过将以下内容添加到您的 pants.toml 来安装额外的插件

[flake8]
extra_requirements.add = [
  "flake8-pantsbuild",
  "pep8-naming",
  "flake8-import-order",
  # and so on...
]

自定义代码检查的替代方案

旧代码 旧选项范围 描述 替代方案
T000 pycheck-variable-names 类名必须是 UpperCamelCase pep8-naming Flake8 插件
T001 pycheck-variable-names 类全局变量必须是 UPPER_SNAKE_CASED pep8-naming Flake8 插件
T002 pycheck-variable-names 函数名必须是 lower_snake_cased pep8-naming Flake8 插件
T100 pycheck-indentation 强制执行 2 个空格缩进 PB20¹
T200 pycheck-trailing-whitespace 尾随空格 Flake8 的 W291
T201 pycheck-trailing-whitespace 使用斜杠而不是括号进行行续行 PB30¹
T301 pycheck-newlines 类方法之间应有 1 个空行 Flake8 的 E301E303
T302 pycheck-newlines 顶层定义之间应有 2 个空行 Flake8 的 E302E303
T400 pycheck-import-order 不允许使用通配符导入 isortflake8-import-order 插件²
T401 pycheck-import-order from 导入未正确排序 isortflake8-import-order 插件²
T402 pycheck-import-order import 应该一次只导入一个模块 isortflake8-import-order 插件²
T403 pycheck-import-order 在一个语句中导入多种模块类型 isortflake8-import-order 插件²
T404 pycheck-import-order 无法分类的导入 isortflake8-import-order 插件²
T405 pycheck-import-order 导入块包含多种模块类型 isortflake8-import-order 插件²
T406 pycheck-import-orde 导入语句顺序错误 isortflake8-import-order 插件²
T601 pycheck-except-statement 使用旧式的 except 语句而不是 as 关键字 PB61³
T602 pycheck-future-compat 使用 iteritemsiterkeysitervalues PB62³
T603 pycheck-future-compat 使用 xrange PB63³
T604 pycheck-future-compat 使用 basestringunicode PB64³
T605 pycheck-future-compat 使用与 Python 3 不兼容的元类 PB65³
T606 pycheck-new-style-classes 发现 Python 2 的旧式类(没有继承 object PB66³
T607 pycheck-print-statements 使用 print 语句,而不是 print 函数 PB60³
T800 pycheck-class-factoring 使用破坏继承的类属性 PB10
T801 pycheck-variable-names 覆盖内置名称 flake8-builtins 插件
T802 pycheck-context-manager 使用 open 而不使用 with 语句(上下文管理器) PB13
T803 pycheck-except-statement 使用通配符 except: Flake8 的 E722
T804 pycheck-constant-logic 在逻辑运算符的左侧使用常量 PB11
T805 pycheck-constant-logic 在 and 运算符的右侧使用常量 PB12

¹ 此 lint 默认禁用。有关启用此 lint 的说明,请参阅上面的部分 错误代码

² 要将 isort 与 Pants 一起使用,请在您的 pants.toml 中设置 backend_packages2.add = ["pants.backend.python.lint.isort"]

³ 由于 2.x 版本不再支持 Python 2,因此此插件的 PB6* lints 仅适用于 1.x 版本系列。请参阅https://github.com/pantsbuild/flake8-pantsbuild/blob/1.x/README.md#error-codes 中的说明,了解如何使用此插件。

开发

我们使用 tox 进行测试自动化。要运行测试套件,请调用 tox。

$ tox

您可以使用 tox -e 运行某些环境(运行 tox -a 以查看所有选项)。

$ tox -e format-run
$ tox -e typecheck
$ tox -e py36

您还可以通过以下方式手动测试使用此插件的 PEX:[链接]

$ pex flake8 . --entry-point flake8 --output-file flake8.pex
$ vim example.py  # add whatever content you want
$ ./flake.pex example.py

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

flake8-pantsbuild-2.0.0.tar.gz (11.7 kB 查看散列)

上传时间 源代码

构建分发

flake8_pantsbuild-2.0.0-py3-none-any.whl (11.3 kB 查看散列)

上传时间 Python 3

支持