一个flake8插件,帮助您编写更整洁的导入。
flake8-tidy-imports的Python项目详细描述
Flake8 Tidy导入
一个flake8插件 帮助您编写更整洁的导入。
安装
从pip安装,使用:
pip install flake8-tidy-imports
支持Python3.4+。
安装后,它将自动作为flake8的一部分运行;您可以 检查是否正在使用:
$ flake8 --version 2.4.1 (pep8: 1.7.0, pyflakes: 0.8.1, flake8-tidy-imports: 1.0.0, mccabe: 0.3.1) CPython 2.7.11 on Darwin
选项
banned-modules
规则i201的配置(见下文)。每一行都是禁止进口的地图 字符串,后跟“=”,然后是遇到被禁止的消息时要使用的消息 导入。注意,尽管有这个名称,您也可以禁止导入对象,因为 语法相同,例如decimal.Decimal。
还有一个特别的指令禁止预先选择的移除/移动列表 python 2和python 3之间的模块,建议尽可能从six进行替换。可以通过添加 {python2to3}到banned-modules列表。
虽然这个选项可以通过命令行传递,但是 在配置文件中配置它,例如setup.cfg,例如:
[flake8]banned-modules=mock = use unittest.mock! urlparse = use six.moves.urllib.parse! {python2to3}
规则
目前这个插件有两个规则。
i200:不必要的导入别名
抱怨三种形式不必要的导入别名:
- import foo as foo->;import foo
- import foo.bar as bar->;from foo import bar
- from foo import bar as bar->;from foo import bar
该消息包括建议的重写(在 当前),例如:
$ flake8 file.py file.py:1:1: I200 Unnecessary import alias - rewrite as 'from foo import bar'.
i201:使用了禁止进口的“foo”
抱怨进口违禁产品。当 重构代码,例如从python 2移到3时。默认情况下 是否禁止导入-您应该使用banned-modulesas配置它们 在“选项”中描述。
消息包括来自配置的用户定义部分。为了 示例:
$ flake8 file.py
file.py:1:1: I201 Banned import 'mock' used - use unittest.mock instead.
历史记录
待发布
2.0.0(2019-02-02)
- 放弃Python2支持,现在只支持Python3.4+。
1.1.0(2017-07-10)
- 为i201添加了一大串python 2到3的导入禁令,可以是 通过将{python2to3}添加到banned-modules选项激活。
1.0.6(2017-03-07)
- 修复了--banned-modules的帮助消息中的空白。
1.0.5(2017-01-13)
- 将I201的错误消息更改为关于禁止的import 而不是module。
- 修复了1.0.4中引入的一个错误,该错误中断了对相对导入的分析。
1.0.4(2017-01-12)
- 不允许安装不启用插件的Flake8 3.2.0。 此错误已在flake8 3.2.1中修复。
- 使用可用于禁止导入的最特定消息。
1.0.3(2016-11-05)
- 修正了从flake8 3+读取配置的问题
1.0.2(2016-07-04)
- 修正了I201规则来检测禁止的导入,如from x import y。
1.0.1(2016-07-01)
- I201允许您配置抱怨某些模块的规则 正在导入,例如,如果从python 2移到3,则可以停止 urlparse以six.moves.urllib.parse为受益人导入。
1.0.0(2016-01-23)
- pypi上的第一个版本。
- I200规则,抱怨不必要的导入别名,例如。 from foo import bar as bar。