阅读最新文档 - 浏览GitHub代码存储库
isort您的进口,因此您不必这样做。
isort是一个Python实用程序 /库,可按字母顺序和自动分为单个部分和类型分离导入。它为各种编辑器提供了命令行实用程序,Python库和插件,以快速对所有导入进行分类。它需要Python 3.9+运行,但也支持格式化Python 2代码。
- 现在从浏览器中尝试isort !
- 使用黑色?请参阅isort和黑色兼容性指南。
- isort有官方支持预投入!
isort之前:
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 , lib3 , lib4 , lib5 , lib6 , lib7 , lib8 , lib9 , lib10 , lib11 , lib12 , lib13 , lib14
import sys
from __future__ import absolute_import
from third_party import lib3
print ( "Hey" )
print ( "yo" )isort之后:
from __future__ import absolute_import
import os
import sys
from third_party import ( lib1 , lib2 , lib3 , lib4 , lib5 , lib6 , lib7 , lib8 ,
lib9 , lib10 , lib11 , lib12 , lib13 , lib14 , lib15 )
from my_lib import Object , Object2 , Object3
print ( "Hey" )
print ( "yo" )安装isort
安装isort很简单:
pip install isort 使用isort
从命令行:
在特定文件上运行:
isort mypythonfile.py mypythonfile2.py递归应用:
isort .如果启用了GlobStar, isort 。等同于:
isort ** / * .py查看建议的更改而不应用它们:
isort mypythonfile.py --diff最后,要与一个项目进行isort运行,只有在不引入语法错误时应用更改:
isort --atomic .(注意:默认情况下,这是禁用的,因为它可以防止isort反对使用其他版本的Python编写的代码。)
从python内部:
import isort
isort . file ( "pythonfile.py" )
或者:
import isort
sorted_code = isort . code ( "import b \n import a \n " )
为您的首选文本编辑器安装isort
已经编写了几个插件,可以在各种文本编辑器中使用isort 。您可以在isort Wiki上找到其中的完整列表。此外,我将热情地接受包括其他文本编辑器的插件,并在通知时为它们添加文档。
多线输出模式
您会在“ Multi_line_output”设置上方注意到。此设置定义了从导入包装中扩展到LINE_LENGTH限制并具有12个可能的设置时如何从Imports包装中进行定义。
缩进
要更改恒定凹痕的外观 - 只需以以下可接受的格式更改凹痕属性:
- 您想要的空间数量。例如:4将导致标准4空间压痕。
- 选项卡
- 一个逐字的字符串,周围有引号。
例如:
" "相当于4。
对于使用括号的导入样式,您可以控制最后一次导入后使用Incluest_trailing_comma选项(默认为false)之后包含尾随逗号。
智能平衡的多行进口
从isort 3.1.0开始,已经添加了对平衡多线导入的支持。使用此启用, isort将将导入长度动态地更改为产生最平衡网格的长度,同时保持在定义的最大进口长度以下。
例子:
from __future__ import ( absolute_import , division ,
print_function , unicode_literals )将生产而不是:
from __future__ import ( absolute_import , division , print_function ,
unicode_literals )要在您的配置中启用此集balanced_wrapping到true或将-e选项传递到命令行实用程序中。
自定义部分和订购
isort提供了配置选项,以更改进口方式的组织,订购或分组的各个方面。
单击此处以获取所有这些选项的概述。
跳过进口的处理(在配置之外)
要使isort忽略单个导入,只需在包含文本isort导入行的末尾添加注释:Skip:
import module # isort :skip或者:
from xyz import ( abc , # isort :skip
yo ,
hey )
要使isort跳过整个文件,只需添加isort :SKIP_FILE到模块的文档字符串:
""" my_module.py
Best module ever
isort :skip_file
"""
import b
import a
从多个文件中添加或删除导入
可以运行或配置isort自动添加 /删除导入。
在此处查看完整的指南。
使用isort验证代码
仅检查选项
isort也可以用来验证通过使用-C运行它正确格式化代码。任何包含错误排序和/或格式导入的文件都将输出到stderr。
isort ** / * .py -c -v
SUCCESS: /home/timothy/Projects/Open_Source/ isort / isort _kate_plugin.py Everything Looks Good !
ERROR: /home/timothy/Projects/Open_Source/ isort / isort / isort .py Imports are incorrectly sorted.
可以使用的一个很棒的地方是@acdha的预要git挂钩,例如这个挂钩:
https://gist.*gi**thub.com/acdha/8717683
这可以帮助确保整个项目中的一定水平的代码质量。
git钩
isort提供了一个挂钩功能,可以将其集成到您的GIT预签名脚本中,以在进行之前检查Python代码。
更多信息在这里。
Setuptools集成
安装后, isort启用了一个setUptools命令,该命令检查项目声明的Python文件。
更多信息在这里。
传播这个词
将此徽章放在存储库的顶部,让其他人知道您的项目使用isort 。
对于readme.md:
[ ![ Imports: isort ] ( https://img.s*hiel*d*s.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336 )] ( https://pycqa.git*h**ub.io/isort/ )或readme.rst:
.. image :: https://img.s*hiel*d*s.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
:target: https://pycqa.git*h**ub.io/isort/ 安全联系信息
要报告安全漏洞,请使用Tidelift安全联系人。 Tidelift将协调修复和披露。
为什么isort ?
isort只是代表进口排序。它最初被称为“ sortimports”,但是我厌倦了键入额外的角色,并且来到实现骆驼的意识并不是Pythonic。
我写了isort因为在我过去在经理工作的组织中,一天来了,并认为所有代码都必须按字母顺序排序的导入。代码基础很大 - 他的意思是我们要手工做。但是,作为程序员 - 我懒得花8个小时无意识地执行一个功能,但懒得花16小时自动化它。我获得了开源sortimports的许可,我们在这里:)
通过Tidelift订阅获得专业支持的isort
作为Tidelift订阅的一部分,可以提供对isort的专业支持。 Tidelift为软件开发团队提供了购买和维护其软件的单一来源,并提供了最了解它的专家,同时与现有工具无缝集成。
谢谢,希望您发现isort有用!
〜Timothy Crosley
通过命令行克隆项目: