[python] Pipenv를 사용하여 패키지 설치 전에 pre-commit 훅 실행하기

개요

Pipenv는 Python 프로젝트 관리를 위한 도구이며, 패키지 의존성 관리와 가상 환경 설정을 편리하게 제공합니다. 이번 글에서는 Pipenv를 사용하여 패키지를 설치하기 전에 pre-commit 훅을 자동으로 실행하는 방법에 대해 알아보겠습니다.

pre-commit 훅이란?

pre-commit 훅은 코드 커밋 전에 실행되는 작업을 말합니다. 흔히 사용되는 pre-commit 훅의 예로는 코드 포매터나 정적 분석 도구를 실행하여 코드 스타일을 일관되게 유지하거나, 테스트 스크립트를 실행하여 코드의 품질을 보증하는 등의 작업이 있습니다.

Pipenv와 pre-commit 사용하기

Pipenv는 PipfilePipfile.lock을 사용하여 패키지 의존성을 관리합니다. Pipfile은 의존성 목록과 버전 정보, Pipfile.lock은 의존성 그래프와 실제 설치된 패키지 정보를 담고 있습니다. 이를 활용하여 pre-commit 훅을 실행해보겠습니다.

  1. Pipenv 설치하기:
    $ pip install pipenv
    
  2. 프로젝트 폴더로 이동하기:
    $ cd my_project
    
  3. Pipenv 활성화하기:
    $ pipenv shell
    
  4. pre-commit 패키지 설치하기:
    $ pipenv install pre-commit
    
  5. .pre-commit-config.yaml 파일 생성하기:
    $ touch .pre-commit-config.yaml
    
  6. .pre-commit-config.yaml 파일 수정하기: ```yaml repos:
    • repo: https://github.com/pre-commit/pre-commit-hooks rev: v2.5.1 hooks:
      • id: trailing-whitespace ```
  7. pre-commit 훅 설치하기:
    $ pre-commit install
    

이제 패키지를 설치할 때마다 pre-commit 훅이 자동으로 실행됩니다. pre-commit 훅에서 정의한 작업(위의 예시에서는 trailing-whitespace 검사)을 수행한 후에 코드를 커밋할 수 있습니다.

결론

Pipenv와 pre-commit을 함께 사용하여 패키지 설치 전에 pre-commit 훅을 자동으로 실행하는 방법에 대해 알아보았습니다. 이를 통해 코드 품질을 유지하고 일관된 코드 스타일을 유지할 수 있습니다.