최신 문서 읽기 - GitHub 코드 저장소 찾아보기
수입품을 분류하므로 그럴 필요가 없습니다.
isort는 가져오기를 알파벳순으로 정렬하고 자동으로 섹션과 유형별로 분리하는 Python 유틸리티/라이브러리입니다. 모든 가져오기를 신속하게 정렬할 수 있도록 다양한 편집자를 위한 명령줄 유틸리티, Python 라이브러리 및 플러그인을 제공합니다. 실행하려면 Python 3.8 이상이 필요하지만 Python 2 코드 형식도 지원합니다.
분리 전:
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" )
분리 후:
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 설치는 다음과 같이 간단합니다.
pip install isort
명령줄에서 다음을 수행합니다 .
특정 파일에 대해 실행하려면:
isort mypythonfile.py mypythonfile2.py
재귀적으로 적용하려면:
isort .
globstar가 활성화된 경우 isort .
다음과 같습니다:
isort ** / * .py
제안된 변경사항을 적용하지 않고 보려면 다음 단계를 따르세요.
isort mypythonfile.py --diff
마지막으로 프로젝트에 대해 isort를 원자적으로 실행하려면 구문 오류가 발생하지 않는 경우에만 변경 사항을 적용합니다.
isort --atomic .
(참고: 이는 다른 버전의 Python을 사용하여 작성된 코드에 대해 isort가 실행되는 것을 방지하므로 기본적으로 비활성화되어 있습니다.)
Python 내에서 :
import isort
isort . file ( "pythonfile.py" )
또는:
import isort
sorted_code = isort . code ( "import b n import a n " )
다양한 텍스트 편집기 내에서 isort를 사용할 수 있는 여러 플러그인이 작성되었습니다. isort wiki에서 전체 목록을 찾을 수 있습니다. 또한 다른 텍스트 편집기용 플러그인이 포함된 풀 요청을 적극적으로 받아들이고 알림을 받으면 이에 대한 문서를 추가할 것입니다.
위에서 "multi_line_output" 설정을 확인할 수 있습니다. 이 설정은 line_length 제한을 초과할 때 가져오기에서 래핑하는 방법을 정의하며 12가지 가능한 설정이 있습니다.
상수 들여쓰기가 표시되는 방식을 변경하려면 허용되는 다음 형식으로 들여쓰기 속성을 변경하면 됩니다.
예를 들어:
" "
4와 같습니다.
괄호를 사용하는 가져오기 스타일의 경우 include_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를 실행하거나 가져오기를 자동으로 추가/제거하도록 구성할 수 있습니다.
여기에서 전체 가이드를 확인하세요.
--check-only
옵션 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.github.com/acdha/8717683
이는 프로젝트 전반에 걸쳐 특정 수준의 코드 품질을 보장하는 데 도움이 될 수 있습니다.
isort는 Git 사전 커밋 스크립트에 통합되어 커밋하기 전에 Python 코드를 확인할 수 있는 후크 기능을 제공합니다.
자세한 내용은 여기를 참조하세요.
설치 시 isort는 프로젝트에서 선언된 Python 파일을 확인하는 setuptools
명령을 활성화합니다.
자세한 내용은 여기를 참조하세요.
이 배지를 저장소 상단에 배치하여 프로젝트에서 issort를 사용한다는 사실을 다른 사람들에게 알리세요.
README.md의 경우:
[ ![ Imports: isort ] ( https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336 )] ( https://pycqa.github.io/isort/ )
또는 README.rst:
.. image :: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
:target: https://pycqa.github.io/isort/
보안 취약점을 신고하려면 Tidelift 보안 담당자에게 문의하세요. Tidelift는 수정 및 공개를 조정할 것입니다.
isort는 단순히 import sort를 의미합니다. 원래는 "sortImports"라고 불렸지만 추가 문자를 입력하는 데 지쳐서 camelCase가 Pythonic이 아니라는 것을 깨달았습니다.
내가 isort를 쓴 이유는 내가 일했던 조직의 관리자가 어느 날 와서 모든 코드가 알파벳순으로 정렬된 가져오기를 가져야 한다고 결정했기 때문입니다. 코드 베이스는 엄청났고 그는 우리가 직접 코드를 작성하자고 했습니다. 그러나 프로그래머로서 나는 아무 생각 없이 8시간을 기능 수행에 소비하기에는 너무 게으른 편이지만, 그것을 자동화하는 데 16시간을 소비하기에는 너무 게으른 편은 아닙니다. 나는 sortImports 오픈 소스에 대한 권한을 얻었고 여기에 있습니다 :)
Tidelift 구독으로 전문적인 지원을 받으세요.
isort에 대한 전문적인 지원은 Tidelift 구독의 일부로 제공됩니다. Tidelift는 소프트웨어 개발 팀에게 소프트웨어를 가장 잘 아는 전문가의 전문적인 수준의 보증을 통해 소프트웨어를 구매하고 유지 관리할 수 있는 단일 소스를 제공하는 동시에 기존 도구와 원활하게 통합됩니다.
감사합니다. issort가 유용하길 바랍니다!
~티모시 크로슬리