裤子项目及其用户使用的各种Flake8皮棉。

flake8-pantsbuild的Python项目详细描述


flake8 pantsbuild公司

这个Flake8插件提供了裤子项目及其用户使用的几个自定义lint。在

目录

安装

如果与裤子一起使用,请将其添加到您的pants.toml

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

如果使用不带裤子的Flake8,请安装:

^{pr2}$

支持的Python版本

此插件可用于Python3.6+。在

如果您需要对Python2.7或Python3.5的支持,请安装flake8-pantsbuild==1.*,并参考https://github.com/pantsbuild/flake8-pantsbuild/blob/1.x/README.md上的自述文件。在

使用

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

如果不穿裤子使用,请运行flake8 file.pyas usual。在

错误代码

Error codeDescriptionNotes
PB10Using class attribute that breaks inheritance
PB11Using a constant on the left-hand side of a logical operator
PB12Using a constant on the right-hand side of an and operator
PB13Using ^{} without a ^{} statement (context manager)
PB20Check for 2-space indentationDisabled by default¹
PB30Using slashes instead of parentheses for line continuationDisabled by default²

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

²要启用PB30尾部斜杠lint,请设置--enable-extensions=PB30。在

lint.pythonstyle迁移到{}

lint.pythonstyle是来自pants.contrib.python.checks插件的定制裤子任务,其行为类似于Flake8,但通常不如更流行的Flake8。在

工具之间的差异

Pants的lint.pythonstyle任务运行pycodestyle和{},此外还提供了几个自定义lint。在

相比之下,Flake8运行pycodestylepyflakes,但它也使用mccabe来检查代码的复杂部分及其adds its own lints。默认情况下,Flake8没有任何自定义的lint.pythonstylelint,但是below table显示了如何保留您想要的任何这些lint。在

Flake8有数百个插件,你可以很容易地添加到裤子。请参阅Awesome Flake8 Extensions,以获得一个精心策划的插件列表。在

迁移步骤

首先,按照installation instructions将Flake8与裤子挂钩。然后,通过从您的pants.toml中删除pants.contrib.python.checks,禁用{}。在

然后,通过运行./pants lint file.py来运行Flake8(请参见Usage)。在

第一次运行./pants lint,由于它与lint.pythonstyle的不同,可能会有几个错误。我们建议从disabling开始,这些错误出现在^{} config file中。将此添加到您的pants.toml以确保裤子使用配置:

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

如果要保留lint.pythonstyle中的任何自定义lint,请参阅下表。您需要通过将此添加到您的pants.toml来安装其他插件:

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

定制皮棉的替代品

^{tb2}$

¹默认情况下禁用此lint。有关如何启用此lint的说明,请参阅上面的^{}。在

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

PB6*lint仅在该插件的1.x发行系列中可用,因为2.x删除了对python2的支持。{关于如何使用这个插件,请参考^上的说明。在

发展

我们使用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

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

推荐PyPI第三方库


热门话题
Java扫雷游戏的算法问题。游戏开始时隐藏地雷?   struts2的java迭代器标记   JavaFX如何创建精简菜单栏?   java从SQLite数据库获取字符串并检查是否等于变量不起作用   java如何检查移动数据连接   一旦我将Runnable传递给另一个线程中Swing的invokeAndWait,java就无法停止它   Java中每个键的多线程线程池   java没有可用的EjbContext   组织的java例外初始化错误。springframework。网状物util。UriComponentsBuilder。Android上的newInstance   java GWT CSS GUI通知用户浏览器问题   多线程一个Java编码程序,它读取一个巨大的CSV文件的行   java如何以编程方式打开特定应用程序的Android备份屏幕   java创建一个由10个整数组成的数组,并用1到6之间的随机数填充它   java如何将堆栈传递到方法中   java如何为注解@CurrentUser发送未经授权的响应   java访问switch语句中的对象   java如何正确扩展类   java DropboxAPI入门,未找到类