Repolode
asottile

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. 1

    pip으로 pyupgrade를 설치합니다

    pip install pyupgrade
  2. 2

    또는 README의 예시 설정을 사용해 .pre-commit-config.yaml에 pre-commit 훅으로 추가합니다

사용 전 알아둘 점

  • 많은 코드 변환은 --py36-plus 또는 --py39-plus와 같은 대상 버전 지정 플래그를 전달해야 적용됩니다.

포함된 컬렉션

토픽

#python#linter#pre-commit#code-modernization#syntax-upgrade#refactoring

자주 묻는 질문

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 통계는 매일 갱신됩니다.

관련 프로젝트