阅读最新文档 – 浏览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内部:
isort
isort .file(\”pythonfile.py\”)\”>
import isort isort . file ( \"pythonfile.py\" )
或者:
isort
sorted_code = isort .code(\”import b\\nimport a\\n\”)\”>
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
或者:
isort:skip
yo,
hey)\”>
from xyz import ( abc , # isort :skip yo , hey )
要使isort跳过整个文件,只需添加isort :SKIP_FILE到模块的文档字符串:
isort:skip_file
\”\”\”
import b
import a\”>
\"\"\" 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.\”>
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
