vscode에서 black formatter 플러그인 설치
cmd+,으로 설정 열고 포매터 지정, on save 체크
저장할 때마다 자동 포매팅됨.
전에는 pycharm에서 file watcher 설정을 해야했는데 tools black 설정만 해도 되는 것 같다. file watcher는 코드가 수정되고 조금 기다리면 자동으로 포맷팅을 해주는 Auto-save 옵션이 있다.
수동으로 저장할 때만 포맷팅을 적용하고 싶으면 Tools -> black만 설정하거나 file watcher에서 Auto-save 옵션을 체크하지 않으면 된다.
pycharm에서 python 가상환경을 생성해주고 pip install poetry
로 poetry라는 패키지 관리 도구를 설치한다.
poetry init
으로 .toml 파일 생성 및 설정을 해준다.
poetry add black
으로 black을 설치한다.
which black
으로 black이 설치된 경로를 찾는다
당연하게도 프로젝트에서 생성한 가상환경에 잘 설치되어 있다
/Users/user_name/project/venv/bin/black
Pycharm preferences
-> Tools
-> File Watchers
-> +
버튼 -> custom
아래 이미지처럼 설정
코드를 수정할 때마다 black을 적용하고 싶으면 Advanced Options를 펼치고 Auto-save ~ 체크 -> OK
poetry를 사용한다면.
line-length의 default는 88이다. 노트북에서 창 분할을 자주 쓰거나, 코드가 한 줄로 길어지는 게 싫으면 80정도가 적당한 것 같다.
[tool.black]
line-length = 80
target-version = ['py310']
pip install -r requirements.txt 또는 poetry install로 pre-commit 설치. rev는 black의 버전과 반드시 동일해야 함.
.pre-commit-config.yaml
파일 생성
repos:
- repo: https://github.com/psf/black
rev: 23.1.0
hooks:
- id: black
language_version: python3.10
args: ["--line-length=80"]
pre-commit install
-> /.git/hooks/
에 pre-commit 파일 생성됨
run 명령어 실행해서 pre-commit에 지정된대로 적용해볼 수 있다.
pre-commit run --all-files
black 포매팅 안하고 commit하면 에러남
vscode에 line-length 적용
파이썬 인터프리터에 설치된 black 버전과 pre-commit에 설정된 black 버전이 같아야 하고 옵션도 동일해야 함
예를 들면 python 3.10과 black 24.4.0이면 설정은 다음과 같아야 함.
.pre-commit-config.yaml
repos:
- repo: https://github.com/psf/black
rev: 24.4.0
hooks:
- id: black
language_version: python3.10
args: ["--line-length=80"]
pyproject.toml
[tool.poetry.dependencies]
python = "3.10.14"
black = "24.4.0"
[tool.black]
line-length = 80
target-version = ['py310']
include = '\.pyi?$'
감사합니다. 덕분에 수명이 늘었어요.