Python code formatter black 사용하기
공식 문서에서 black은 스스로 uncompromising (비타협적인) python code formatter라고 소개하고 있습니다. 비타협적이라는 것은 수동으로 hand-formatting 하는 대신에 black이 formatting 하는 것을 따라야 하며 커스터마이징이 쉽지 않다는 것을 뜻합니다. 실제로 configuration 없이 설치 후 바로 파이참에서 사용할 수 있었습니다. black도 당연히 PEP를 따르고 있으며, 사용해보니 꽤 가독성 좋은 formatting을 제공하고 있습니다.
pip로 설치는 다음과 같이 할 수 있습니다.
pip install black
더 자세한 내용은 공식 문서를 참고해주세요.
파이참 file watchers로 black 적용하기
black을 설치했다면, 파이참에서 파일을 세이브할 때마다 black을 이용해 자동으로 파이썬 코드를 포매팅하도록 설정할 수 있습니다. 방법은 다음과 같습니다.
Settings -> Tools -> File Watchers로 들어가서 + 버튼을 눌러 템플릿을 추가합니다.
그리고 아래 사진과 같이 내용을 수정합니다.
File type은 Python으로, Program은 black이 설치된 경로를 넣어줍니다.
Arguments에는 $FileDirRelativeToProjectRoot$, Output paths to refresh에는 $FileDir$, Working directory에는 $ProjectFileDir$를 각각 넣어줍니다.
Advanced Options는 디폴트 상태로 저장하면 코드를 타이핑할 때마다 너무 자주 black이 적용돼서 불편함이 있습니다. 그래서 저는 파일을 저장할 때에만 black이 적용되도록 Advanced Options에서 모든 체크를 해제했습니다.
black을 git pre-commit hook에 적용하기
CI 프로세스중 하나인 pre-commit hook에 black을 적용하여 commit전에 항상 코드 포매팅 검사를 할 수 있습니다.
공식 문서에 pre-commit 사용법이 자세히 나와있습니다.
pip로 pre-commit을 설치하는 명령어는 다음과 같습니다.
pip install pre-commit
pre-commit을 설치했으면 프로젝트 루트 디렉터리에 .pre-commit-config.yaml파일을 만들고 파일 안에 configuration을 작성하고 저장합니다.
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.3.0
hooks:
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/psf/black
rev: 21.12b0
hooks:
- id: black
다음으로 터미널에서 pre-commit scripts를 설치합니다.
pre-commit install
이제 커밋을 할 때마다 black으로 검사를 실행할 것입니다.
최근댓글