Git 커밋 전에 코드를 검사하는 다국어 pre-commit hook을 관리하고 실행하는 프레임워크입니다.
asottile/pyupgrade
대상 Python 버전에 맞춰 Python 소스를 최신 문법으로 자동 변환하는 CLI 도구이자 pre-commit 훅입니다.
- 스타
- 4,126
- 포크
- 229
- 열린 이슈
- 21
- 마지막 커밋
- 3일 전
어떤 프로젝트인가요?
pyupgrade는 Python 소스 파일을 제자리에서 변환해 최신 Python 버전의 문법과 관용적 표현을 사용하도록 합니다. 구식 문자열 포매팅을 f-string이나 str.format으로 바꾸고, six 호환성 호출을 네이티브 표현으로 대체하며, set 및 dict 컴프리헨션을 간소화하는 등의 변경을 처리합니다. --py36-plus나 --py310-plus 같은 플래그를 사용해 버전별 변환을 활성화하면 프로젝트가 대상으로 하는 최소 Python 버전에 맞는 결과를 얻을 수 있습니다.
pip으로 설치한 뒤 명령줄에서 하나 이상의 파일을 대상으로 실행할 수 있습니다. 제공되는 훅을 통해 pre-commit에 연결하면 각 커밋 전에 스테이징된 파일을 자동으로 변환할 수도 있습니다. 어노테이션에 영향을 주는 변환 등 일부 변경은 파일에서 import from __future__ import annotations를 사용할 때만 적용되며, 필요하면 플래그를 지정해 런타임 타이핑을 변경하지 않도록 할 수 있습니다.
핵심 기능
- 01구식 문자열 포매팅을 f-string, str.format 및 간소화된 리터럴로 변환합니다.
- 02import와 버전 확인 코드를 포함해 six 및 py2/py3 호환성 코드를 제거합니다.
- 03--py36-plus부터 --py315-plus까지의 플래그로 대상 Python 버전을 지정합니다.
- 04활성화하면 PEP 585 및 PEP 604 형식 등 최신 typing 어노테이션으로 변환합니다.
- 05스테이징된 파일을 대상으로 pre-commit 훅으로 실행됩니다.
활용 사례
- 오래된 코드베이스의 최소 Python 버전을 높이면서 모든 파일을 일일이 수정하지 않습니다.
- 마이그레이션 후 Python 2 및 six 호환성 코드를 제거합니다.
- 팀 저장소에서 pre-commit을 통해 최신 문법을 자동으로 적용합니다.
빠른 시작
- 1
pip으로 pyupgrade를 설치합니다
pip install pyupgrade - 2
또는 README의 예시 설정을 사용해 .pre-commit-config.yaml에 pre-commit 훅으로 추가합니다
사용 전 알아둘 점
- 많은 코드 변환은 --py36-plus 또는 --py39-plus와 같은 대상 버전 지정 플래그를 전달해야 적용됩니다.
포함된 컬렉션
토픽
자주 묻는 질문
- pyupgrade은(는) 무엇인가요?
- 대상 Python 버전에 맞춰 Python 소스를 최신 문법으로 자동 변환하는 CLI 도구이자 pre-commit 훅입니다. pyupgrade는 Python 소스 파일을 제자리에서 변환해 최신 Python 버전의 문법과 관용적 표현을 사용하도록 합니다. 구식 문자열 포매팅을 f-string이나 str.format으로 바꾸고, six 호환성 호출을 네이티브 표현으로 대체하며, set 및 dict 컴프리헨션을 간소화하는 등의 변경을 처리합니다. --py36-plus나 --py310-plus 같은 플래그를 사용해 버전별 변환을 활성화하면 프로젝트가 대상으로 하는 최소 Python 버전에 맞는 결과를 얻을 수 있습니다.
- pyupgrade은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- pyupgrade은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- pyupgrade은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. pyupgrade의 마지막 커밋은 2026년 11월 4일입니다.
- pyupgrade은(는) 어디에 사용할 수 있나요?
- 오래된 코드베이스의 최소 Python 버전을 높이면서 모든 파일을 일일이 수정하지 않습니다. 마이그레이션 후 Python 2 및 six 호환성 코드를 제거합니다. 팀 저장소에서 pre-commit을 통해 최신 문법을 자동으로 적용합니다.
- pyupgrade는 어떻게 설치하나요?
- pip으로 pyupgrade를 설치합니다: pip install pyupgrade 또는 README의 예시 설정을 사용해 .pre-commit-config.yaml에 pre-commit 훅으로 추가합니다
- pyupgrade은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/asottile/pyupgrade
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Black은 최소한의 diff로 파일을 직접 다시 작성하는, 고유한 스타일을 적용하는 결정론적 Python 코드 포매터입니다.
Python import 문을 자동으로 정렬하고 그룹화하는 유틸리티이자 라이브러리입니다.
여러 프로젝트의 공통 설정을 검사하고 설정 파일을 자동으로 수정하는 CLI 도구이자 flake8 플러그인입니다.
여러 줄로 작성된 호출, 리터럴, 정의에 후행 쉼표를 자동으로 추가하는 Python 도구이자 pre-commit 훅입니다.
일반 텍스트가 아닌 AST 패턴으로 코드를 검색하고 린트하며 재작성하는 CLI 도구입니다.