Black
Python Black은 코드 스타일을 일관성 있게 유지하고 가독성을 높이기 위해 사용되는 코드 포맷터로,
코드를 스캔하고 적절한 들여쓰기와 라인 길이, 공백 등의 세부적인 스타일을 자동으로 지정해준다
또한 Black은 다른 도구와 연동하여 코드 포맷팅도 가능
예를 들어, VSCode와 같은 IDE에서 Black 확장을 설치하거나, Git pre-commit hook으로 Black을 설정하여 코드 커밋 전에 자동으로 코드 포맷팅을 수행할 수 있다
black을 설치하고 사용하려면, 다음과 같이 명령어를 실행하면 된다.
pip install black
파일이 정렬이 필요한지 확인하기
$ black --check <파일명>.py
# 명령어 입력 시
would reformat <파일명>.py
Oh no! 💥 💔 💥
1 file would be reformatted.
그리고 다음과 같이 파이썬 파일을 정렬하면 끝.
black <파일명>.py
# 명령어 입력 시
reformatted <파일명>.py
All done! ✨ 🍰 ✨
1 file reformatted.
하나씩 실행하는 것이 상당히 귀찮다
그래서 VSCode의 경우, 아래 설정을 .vscode/settings.json에 추가해주기만 하면 파이썬 코드 편집기에서 변경된 코드를 저장할 때 마다 Black이 자동으로 실행되도록 설정할 수 있다
{
"editor.formatOnSave": true,
"python.formatting.provider": "black"
}
첫번째 설정은 코드가 저장할 때 마다 자동으로 포멧팅
두번째 설정은 VSCode의 기본 포멧터 대신에 Black을 사용
Isort
isort는 Python 코드의 import문을 정렬해주는 도구
isort는 다양한 설정 옵션을 제공하여, 코드 스타일에 맞게 import문을 정렬할 수 있다.
#isort를 사용 시 예시
from __future__ import unicode_literals
import json
import time
from django.contrib import messages
from django.contrib.auth.decorators import login_required
from django.forms.formsets import formset_factory
from django.forms.models import inlineformset_factory
from django.views.decorators.http import require_POST
from bibtexparser.bparser import BibTexParser
from bibtexparser.customization import convert_to_unicode
from parsifal.reviews.decorators import author_required, main_author_required
from parsifal.reviews.models import Review
from .forms import KeywordForm, SynonymForm
isort를 설치하고 사용하려면, 다음과 같이 명령어를 실행하면 된다.
pip install isort
그리고 다음과 같이 파이썬 파일을 정렬하면 끝.
# 특정 파일 정렬
isort <파일명>.py
# 여러개 파일
isort <파일명1>.py <파일명2>.py
# 디렉토리
isort <디렉토리명>
# 실행 후 변화 확인하기
isort <파일명>.py --diff
# 체크만..
isort <파일명>.py --check-only
isort는 대부분의 코드 에디터에서도 사용할 수 있으며, 코드 저장 시 자동으로 import문을 정렬해줄 수도 있습니다.
# 이렇게까지 써야하나 싶은 세팅
{
"editor.formatOnSave": true,
"[python]": {
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": true
},
"editor.formatOnType": true
},
"python.formatting.provider": "black",
"python.formatting.blackPath": "black",
"python.formatting.blackArgs": [
"--line-length=88"
],
"isort.args": [
"--profile",
"black"
],
}
black을 포맷터로 사용
isort를 black과 함께 사용
저장시 isort 실행, black 실행
타이핑 중에도 자동으로 코드 포맷팅
코드 한 줄 길이 88자로 제한
'Python' 카테고리의 다른 글
가변인자 *args, **kwargs (0) | 2023.05.31 |
---|---|
python poetry 설치 가이드 (2) | 2023.04.23 |
python 개인과제 해설 (0) | 2023.04.10 |
자료에서 원하는 걸 초콜릿처럼 꺼내먹는 법 - 인덱싱, 슬라이싱, 관련 함수와 모듈 (2) | 2023.03.24 |
자료를 장난감처럼 가지고 노는 법 - 리스트, 딕셔너리, 튜플, 집합 (0) | 2023.03.23 |
댓글