Фреймворк для управления pre-commit-хуками на разных языках и их запуска для проверки кода перед каждым Git-коммитом.
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
Установите pyupgrade с помощью pip
pip install pyupgrade - 2
Или добавьте его как pre-commit-хук в .pre-commit-config.yaml, используя пример конфигурации из README
Что важно знать
- Многие преобразования применяются только при передаче флага целевой версии, например --py36-plus или --py39-plus.
В подборках
Темы
Частые вопросы
- Что такое 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 обновляется ежедневно.
Похожие проекты
Black — форматтер Python-кода с заданным стилем и предсказуемым результатом, который перезаписывает файлы с минимальными diff.
Утилита и библиотека для Python, которые автоматически сортируют и группируют импорты.
Консольная утилита и плагин для flake8, которые проверяют единообразие настроек в нескольких проектах и автоматически исправляют конфиги.
Инструмент для Python и pre-commit hook, который автоматически добавляет завершающие запятые в многострочные вызовы, литералы и определения.
CLI-инструмент для поиска, линтинга и переписывания кода по шаблонам AST, а не по обычному тексту.