更新(2016): sbywater具有最新答案。
找到了!(顺便说一句,在阅读“ Python黑客指南”时)
名为hacking的OpenStack Hacking Style Checks项目引入了几个独特的flake8
扩展。其中有hacking_import_groups(相关commit)。
例:
要求
示例中使用的文件
tox.ini
(我们需要告诉flake8我们要使用自定义检查)
[hacking]
local-check = hacking.core.hacking_import_groups
UPD:hacking
更改了支票路径的最新版本,现在是hacking.checks.imports.hacking_import_groups
。
test.py
(检查对象)
import requests
import sys
from my_module import print_smth
print_smth(requests.get('https://google.com'))
print_smth(sys.version)
my_module.py
(由本地使用test.py
)
def print_smth(smth):
print smth
然后,如果我跑flake8
反对test.py
:
$ flake8 test.py
test.py:2:1: H305 imports not grouped correctly (requests: third-party, sys: stdlib)
test.py:3:1: H305 imports not grouped correctly (sys: stdlib, my_module.print_smth: project)
test.py:3:1: H306 imports not in alphabetical order (sys, my_module.print_smth)
然后,如果我按以下正确顺序将导入分组PEP8
:
import sys
import requests
from my_module import print_smth
print_smth(requests.get('https://google.com'))
print_smth(sys.version)
找不到警告:
$ flake8 test.py
$
希望这对将来有帮助。
pep8
工具当前不检查此内容-它仅检查一条线上的多个导入(E401)