isort:Python import 排序工具
isort:Python import 排序工具
写 Python 代码时,import 语句的整理属于重复工作。标准库、第三方库、本地模块的 import 混在一起,没有固定顺序。isort 的作用就是完成这个整理,按字母顺序排列 import,并按类型分块。
这个工具由 PyCQA 维护,六千多 Star,在 Python 社区使用范围广。

功能
isort 读取 Python 文件,把 import 重新排序。排序按字母顺序,同时把 import 分成几个区块:标准库、第三方库、本地模块各自独立。
看一个例子。排序前 import 可能是这样的:
from my_lib import Object
import os
from my_lib import Object3
from my_lib import Object2
import sys
from third_party import lib15, lib1, lib2
import sys
from __future__ import absolute_import
排序后变成:
from __future__ import absolute_import
import os
import sys
from third_party import (lib1, lib2, lib15)
from my_lib import Object, Object2, Object3
import 按顺序排列,重复项也合并了。可以一键应用到整个项目。
用法
安装:
pip install isort
处理单个文件:
isort mypythonfile.py
递归处理目录:
isort .
只查看改动,不写入文件:
isort mypythonfile.py --diff
也可以在 Python 代码里调用:
import isort
isort.file("pythonfile.py")
配置选项
isort 支持多种配置。多行 import 的换行方式有 12 种模式可选,缩进可用空格或 Tab,还能设置末尾逗号。
如果某个 import 不想被排序,在行尾加注释:
import module # isort:skip
整个文件跳过的话,在模块 docstring 里加 isort:skip_file。

编辑器集成
isort 有各类编辑器的插件,包括 VS Code、Vim、Emacs 等。可以和 black 配合使用。
pre-commit 也支持集成 isort,提交前自动检查 import 顺序。
使用建议
如果项目 import 比较多,或者多人协作时代码风格不一致,isort 能省下手动整理的时间。不少 Python 项目在用这个工具。
CI 流程里加上 isort --check-only 可以在提交前自动检查,格式不合规的代码会被拦下来。
安装简单,对现有代码改动小,适合作为团队的代码规范工具。
用这个工具。
CI 流程里加上 isort --check-only 可以在提交前自动检查,格式不合规的代码会被拦下来。
安装简单,对现有代码改动小,适合作为团队的代码规范工具。
更多推荐


所有评论(0)