一个flake8插件,帮助您编写更整洁的导入。

flake8-tidy-imports的Python项目详细描述


Flake8 Tidy导入

https://img.shields.io/pypi/v/flake8-tidy-imports.svghttps://img.shields.io/travis/adamchainz/flake8-tidy-imports.svg

一个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,则可以停止 urlparsesix.moves.urllib.parse为受益人导入。

1.0.0(2016-01-23)

  • pypi上的第一个版本。
  • I200规则,抱怨不必要的导入别名,例如。 from foo import bar as bar

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

推荐PyPI第三方库


热门话题
java如何在jetty请求日志中添加milliscond字段?   java在使用Scanner类从文件读取信息时遇到问题   为什么。类不适用于泛型类型?   SQLite插入上的java空指针异常   java能告诉我们Guava缓存是在禁用统计数据的情况下构建的吗?   java在应用程序中使用常量   java无法使用AutoIT和Selenium Webdriver在所需位置/文件夹保存图像   java如何在jtable中更新jprogress栏   java是比较给定日期和当前日期(在给定时区中没有时间段)的最佳方法   安卓代码中的java错误   java无法访问实体类中的字段   java如何在tomcat中处理三个JDBC连接池?   java无法使用Spring Security保护AngularJS页面   如何在没有TCP/IP协议栈的情况下用Java发送以太帧