Python Formatter(Black) 설정 및 테스트

2024. 11. 4. 20:38Python

프로젝트에 Black을 설정하며 장단점과 필요한 설정을 정리한 문서입니다.

Black

  • 기능: 코드 포매터로, 코드 스타일을 자동으로 정리합니다.
  • 주요 목적: 코드 스타일 일관성 유지.
    • PEP8을 완벽 준수하기 때문에 코드 가독성이 낮아질 수 있음. 때문에 프로젝트 별 추가 설정을 하는걸 추천.
  • 설치 및 사용: https://pypi.org/project/black/
 

black

The uncompromising code formatter.

pypi.org


설치

pip install black

사용 예시

black . # 전체 수정
black /apps/ # 특정 디렉토리 수정
black /apps/test.py # 특정 파일만 수정

black --diff /apps/test.py # 파일 변경사항만 확인
black --diff --color /apps/test.py # 파일 변경을 git commit 변경사항처럼 확인

black 테스트


Black 설정 및 테스트

1. 프로젝트 최상위 디렉토리에 pyproject.toml 생성

[tool.black]
line-length = 150
skip-string-normalization = true

 

2. 테스트

  • 라인 길이 150 설정, 싱글쿼터 미변경처리
    • file 필드는 150을 넘지 않기때문에 한줄 처리

  • 라인 길이 150 설정, 싱글쿼터 변경처리
    • file 필드는 150을 넘지 않기때문에 한줄 처리
    • teacher 필드는 싱글쿼터(')를 더블쿼터("")로 변경

  • 라인 길이 80 설정, 싱글쿼터 변경처리
    • file 필드는 80을 넘기때문에 줄바꿈 처리
    • teacher 필드는 싱글쿼터(')를 더블쿼터("")로 변경


Black format 적용 예외 처리

    # fmt: off
    teacher = ForeignKey("teacher.Teacher", related_name="call_recording_file", null=True, on_delete=CASCADE,)
    file = FileField(verbose_name="file path", upload_to=file_upload_path, null=True, max_length=250)
    file_md5 = UUIDField(verbose_name="file md5", blank=True, null=True)
    # fmt: on

관련 글

 

[Python] Python Tool(보안, 코드 품질, 스타일, 테스트)

코드 스타일 및 품질 검사 ToolFlake8기능: PEP 8 코딩 스타일 준수 여부를 검사하고, 일부 코드 품질 문제(예: 사용되지 않는 변수)를 발견합니다.주요 목적: 코드 스타일 및 기본적인 코드 품질 유지

hunstory.tistory.com