Repolode
asottile

asottile/pyupgrade

Инструмент командной строки и хук pre-commit, который автоматически переписывает исходный код Python с учётом целевой версии языка.

Звёзды
4,126
Форки
229
Открытые issues
21
Последний коммит
3 дня назад

Что это?

pyupgrade изменяет файлы с исходным кодом Python на месте, чтобы использовать синтаксис и идиомы новых версий Python. Например, он заменяет старый формат строк на f-строки или str.format, меняет вызовы для совместимости с six на нативные аналоги и упрощает генераторы множеств и словарей. Преобразования для конкретных версий включаются флагами вроде --py36-plus или --py310-plus, чтобы результат соответствовал минимальной версии Python, на которую рассчитан проект.

Инструмент можно установить через pip и запускать из командной строки для одного или нескольких файлов. Его также можно подключить через предоставляемый хук pre-commit, чтобы перед каждым коммитом автоматически обрабатывать файлы, добавленные в индекс. Некоторые преобразования, например затрагивающие аннотации, применяются, только если в файле импортирован from __future__ import annotations; при необходимости флаг позволяет сохранить типизацию без изменений во время выполнения.

Ключевые возможности

  • 01Заменяет старый формат строк на f-строки и str.format, а также упрощает строковые литералы.
  • 02Удаляет код для совместимости с six и Python 2/3, включая импорты и проверки версий.
  • 03Позволяет задавать целевые версии Python флагами от --py36-plus до --py315-plus.
  • 04Модернизирует аннотации типов, например до форматов PEP 585 и PEP 604, если это включено.
  • 05Запускается как хук pre-commit для файлов, добавленных в индекс.

Сценарии использования

  • Повышение минимальной версии Python для старого проекта без ручного редактирования каждого файла.
  • Удаление кода для совместимости с Python 2 и six после миграции.
  • Автоматическое применение современного синтаксиса в репозитории команды через pre-commit.

Быстрый старт

  1. 1

    Установите pyupgrade с помощью pip

    pip install pyupgrade
  2. 2

    Или добавьте его как pre-commit-хук в .pre-commit-config.yaml, используя пример конфигурации из README

Что важно знать

  • Многие преобразования применяются только при передаче флага целевой версии, например --py36-plus или --py39-plus.

В подборках

Темы

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

Частые вопросы

Что такое pyupgrade?
Инструмент командной строки и хук pre-commit, который автоматически переписывает исходный код Python с учётом целевой версии языка. pyupgrade изменяет файлы с исходным кодом Python на месте, чтобы использовать синтаксис и идиомы новых версий Python. Например, он заменяет старый формат строк на f-строки или str.format, меняет вызовы для совместимости с six на нативные аналоги и упрощает генераторы множеств и словарей. Преобразования для конкретных версий включаются флагами вроде --py36-plus или --py310-plus, чтобы результат соответствовал минимальной версии Python, на которую рассчитан проект.
pyupgrade можно использовать бесплатно? Какая у него лицензия?
pyupgrade распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
pyupgrade всё ещё поддерживается?
Активно поддерживается. Последний коммит в pyupgrade — 4 нояб. 2026 г..
Для чего можно использовать pyupgrade?
Повышение минимальной версии Python для старого проекта без ручного редактирования каждого файла. Удаление кода для совместимости с Python 2 и six после миграции. Автоматическое применение современного синтаксиса в репозитории команды через pre-commit.
Как установить pyupgrade?
Установите pyupgrade с помощью pip: pip install pyupgrade Или добавьте его как pre-commit-хук в .pre-commit-config.yaml, используя пример конфигурации из README
Где скачать pyupgrade?
Исходный код и инструкции по установке — на GitHub: https://github.com/asottile/pyupgrade

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты