Ruff 0.17.5 уточнил безопасность автоисправлений и правила preview

Ruff 0.17.5 уточнил безопасность автоисправлений и правила preview
Содержание статьи

12 ноября 2026 года Astral выпустила Ruff 0.17.5. Обновление Python-линтера содержит исправления преобразований кода и изменения предварительных правил. Для читателей Mentoring.digital главное здесь состоит в том, чтобы различать обнаруженную проблему, предложенный diff и разрешённое автоматическое изменение.

Какие автоисправления изменились

Выпуск исправляет преобразования, которые добавляют или удаляют именованный аргумент со значением в скобках. Для правила ICN001 устранено затенение имён при исправлении алиасов импортов. Для UP031 исправлена ситуация с повторными закрывающими скобками вокруг форматной строки.

В разделе preview исправление G004 помечено как unsafe. Такая отметка нужна, чтобы отделять преобразования, требующие дополнительной оценки поведения, от обычного безопасного набора. Разрешать небезопасные исправления всему проекту только ради чистого отчёта линтера не стоит.

Что относится к предварительным правилам

Среди preview-изменений появились RUF202 для переименованных правил и PLE0211 для методов без аргумента. Проверка RUF101 распространена на дополнительные комментарии подавления. Наличие этих пунктов в release notes не означает, что они автоматически включены во всех проектах.

Нужно учитывать конфигурацию выбора правил и режим preview. Если разработчик сравнивает только количество предупреждений до и после, он может смешать исправление ошибки линтера с расширением набора проверок. Это разные причины изменения отчёта.

Как проверить обновление без лишних правок

Сначала обновите закреплённую версию Ruff в отдельной ветке и запустите обычную проверку без массового изменения файлов. Затем просмотрите новые сообщения и diff предполагаемых исправлений. Особое внимание полезно уделить импортам, форматированию строк и участкам со скобками, если такие преобразования используются в проекте.

После выбранных исправлений выполните тесты затронутого кода. Чистый отчёт линтера сам по себе не проверяет бизнес-логику приложения. На занятии с ментором по Python и качеству кода можно разобрать конкретное правило и решить, какое изменение уместно принять, а какое оставить для ручной проверки.

Похожие статьи по данной теме